1. 核心思想
- 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
- 针对接口编程,而不是针对实现编程。
- 为了交互对象之间的松耦合设计而努力。
2. 总结
- 面对对象设计:开闭原则,依赖倒置原则
- 开闭原则:对扩展开放,对修改关闭
- 依赖倒置:要依赖于抽象,不要依赖于具体
- 拆分解构:单一职责原则,接口隔离原则
- 单一职责(对业务):一个类,只有一个引起它变化的原因。应该只有一个职责
- 接口隔离(对架构):一个类对另一个类的依赖应该建立在最小的接口上
- 类之间的通信:合成复用原则,里氏替换原则,迪米特法则
- 合成复用:尽量使用组合/聚合关系,少用继承
- 里氏替换:任何基类可以出现的地方,子类一定可以出现
- 迪米特法则(最少知识原则):一个类对其他类知道的越少越好