- 面向对象设计原则(1) 依赖倒置原则
1. 高层模块(稳定)不应该依赖低层模块(变化),二者应该依赖抽象(稳定)
2. 抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)
- 面向对象设计原则(2)开放封闭原则
1. 对扩展开放,对更改封闭
2. 类模块应该是可扩展的,但是不可修改
- 面向对象设计原则(3)单一职责原则
1. 一个类应该仅有一个引起它变化的原因
2. 变化的方向隐含着类的责任
- 面向对象设计原则(4)liskov替换原则
1. 子类必须能够替换他们的基类
2. 继承表达类型抽象
- 面向对象设计原则(5)接口隔离原则
1. 不应该强迫客户程序依赖他们不需要的接口(使用者用不到的接口私有化)
2. 接口应该小而完备
- 面向对象设计原则(6)合成复用原则/聚合复用原则
1. 优先组合而不是继承
2. 子类和父类耦合度高于包含组合(当扩展方向不一样时,组合可以在其他地方单独使用,但继承耦合度高,不可分割)
- 面向对象设计原则(7)面向接口编程
1. 不将变量类型声明为某个特定的具体类,而是申明成某个接口(基类指针)
2. 通过面向接口编程,可以轻松地替换实现类,以适应需求的变化
- 面向对象设计原则(8)封装变化点(隔离变化)
1. 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良影响,从而实现不同层次间的松耦合