面向对象设计的原则
1 开闭原则
软件实体应对扩展开放,而对修改关闭。即尽量在不修改原有代码的情况下进行扩展。
开闭原则一般通过在原有模块中添加抽象层来实现;
开闭原则是其他原则的基础,其他原则是实现开闭原则的具体措施;
2 里氏替换原则
一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且把基类替换成它的子类,程序的行为没有变化。反过来不一定成立。
运用此原则,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。
3 依赖倒置原则
抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
为确保该原则的应用,一个具体类应当只实现接口和抽象类中声明过的方法,而不要给出多余的方法。
开闭原则是面向对象设计的目标,依赖倒置原则是面向对象设计的主要机制。
4 组合/聚合复用原则
是在一个新的对象中通过组合关系或聚合关系来使用一些已有的对象;
尽量使用组合/聚合关系,少用继承;
5 接口隔离原则
使用多个专门的接口,而不使用单一的总接口。
6 最少知识原则
也称为迪米特法则。一个软件实体应当尽可能少地与其他实体发生相互作用。
张友生系统分析师教材2017版,p530;