面向对象设计原则
程序员文章站
2022-05-22 23:21:15
...
SRP 单一职责
就一个类而言,应该仅有一个引起它变化的原因
OCP 开闭原则
软件的实体(类,模块,函数等)对扩张开放,对修改关闭
LSP Lislov 替换原则
子类型必须可以替换掉他们的基本类型
DIP 依赖倒置原则
抽象不应该依赖于细节。细节应该依赖于抽象
ISP 接口隔离原则
不应该强迫客户依赖于他们不使用的方法。接口属于客户,不属于它所在的类层次结构。
REP 重用发布等价原则
重用的粒度就是发布的粒度
CCP 共同封闭原则
包中所有类对于同一性质的变化应该是共同封闭的。一个变化若对另一个包产生影响,则将对该包中的
所有类产生影响,而对于其他包不造成影响。
CRP 共同重用原则
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么要重用包中的所有类。
ADP 无环依赖原则
在包中的依赖关系图中,不允许存在环。
SDT 稳定依赖原则
朝着稳定的方向进行依赖
SAP 稳定抽象原则
包的抽象程度应该和其稳定程度一致
面向对象设计原则的愿景就是,系统可扩展,可维护,可测。最终归于开闭原则,因此我们设计的时候要尽量抽象通用,封装变化。
不好的设计表现
- 僵化性:(Rigidity):设计难以改变
- 脆弱性(Fragility):设计容易被破坏
- 牢固性(Immobility):设计难以复用
- 耦合性(Viscosity):模块间过分耦合
- 不必要的复杂性(Needless complexity):过度设计
- 不必要的重复(Needless Repetition):不必要的重复
- 晦涩性(Opacity):混乱的表达
下一篇: 问个写写代码环境习惯的问题