1、面向对象设计原则 1、依赖倒置原则 2、开放封闭原则 3、单一职责原则 4、LSP替换原则 5、接口隔离原则 6、优先使用对象组合,而不是继承 7、封装变化点 8、针对接口编程,不针对实现编程 重构关键技法