设计模式
目的
- 代码可重用性
- 可读性
- 可拓展性
- 高内聚,低耦合
七大原则
1. 单一职责原则
- 一个类只负责一项职责,降低类的复杂度
- 提高类的可读性,可维护性
- 降低变更引起的风险
- 只有逻辑足够简单才可以违反单一职责原则;只有类中方法数量足够少,才可以在方法级别上保持单一职责原则
2. 接口隔离原则
- 一个类对另一个类的依赖应该建立在最小接口上,不应该依赖不需要的接口
3. 依赖倒转(倒置)原则
- 高层模块不应该依赖低层模块,二者都应该依赖其抽象
- 抽象不应该依赖细节,细节应该依赖抽象
- 面向接口编程
- 使用接口或抽象类的目的是制定好规范,不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成
4. 里氏替换原则
- 使用继承时,子类中尽量不要重写父类的方法
- 继承实际让两个类耦合性增强了,可以通过聚合,组合,依赖 来解决问题
5. 开闭原则
- 对扩展开放,对修改关闭
- 用抽象构建框架,用实现扩展细节
6. 迪米特法则
- 一个对象应该对其他对象保持最少的了解
- 类与类关系越密切,耦合度越大
- 最少知道原则,一个类对自己依赖的类知道的越少越好。对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部
- 每个对象都会与其他对象有耦合关系(依赖,关联,组合,聚合 等),对象只与直接的朋友通信(成员变量,方法参数,方法返回值),陌生类最好不要以局部变量的形式出现在类的内部
7. 合成复用原则
- 尽量使用合成/聚合的方式,而不是使用继承
设计原则核心思想
- 独立应用中可能需要变化之处
- 针对接口编程,而不是针对实现编程
- 为了交互对象之间的松耦合设计而努力