面向对象系统分析与设计(7)
1. 面向对象的六大设计原则
- 单一职责,single responsibility principle,SRP
- 一个类,只做一件事。
- 开闭原则,open close principle,OCP
- 对扩展开放,对修改封闭,保护既有系统。
- 是 OO 设计的真正核心。
- 里氏替换原则,liskov substitution principle,LSP
- 子类可以拓展父类的功能,但不能修改父类原有的功能。
- 接口隔离原则,interface segregation principle,ISP
- 接口间的依赖性要小;比如一个类要实现某功能时,如果接入接口 A 和接口 B,然而只有 A 的功能是必须的,但因为 A 和 B 的依赖性,接入 B 是完全没有必要的,修改的办法就是降低 A、B 间的依赖。
- 迪米特原则,law of demeter,LOD
- 陌生的类不要作为局部变量的形式出现在类的内部,耦合性会变高。
- DIP原则,dependency inversion principle。
- 模块设计、细节和策略应该依赖于抽象,抽象的稳定性决定了系统的稳定性。
- 变量不应该持有指向具体类的指针或引用。
- 类不应该从具体类派生。
- 任何方法都不应该覆写它的任何基类中已经实现了的方法。
