设计原则
- 单一职责原则(SRP = Single Responsibility Principle)
一个类 == 只有一个引起它变化的原因
- 开放封闭原则(OCP = Open Close Principle)
一个实体(类/函数/模块等)应该对外扩展开放,对内修改关闭,保持高内聚低耦合。
最佳实践:面向接口编程
- 里氏替换原则(LSP = Liskov Substitution Principle)
子类必须替换掉他们的父类型
只有当子类替换掉父类后,软件功能不受影响时,父类才可以真正被复用。而子类也可以在父类的基础上添加新的行为。
- 依赖倒置原则(DIP = Dependence Inversion Principle)
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的。
细节应该依赖于抽象,反之则否。
最佳实践:面向接口编程。面向接口编程是面向对象编程精髓之一。降低客户与具体实现的耦合性。
- 接口隔离原则(ISP = Interface Segregation Principle)
类间的依赖关系应该建立在最小的接口上(最小化原则)。
不应使单一接口承担过多的职责,而应该分散为各个专用功能接口,进行接口隔离。
单一职责、开闭原则、里式替换、接口隔离、依赖倒置(依赖反转)被称为 SOLID 原则
- 最少知识原则(LKP = Least Knowledge Principle)
(迪米特法则 LOD = Law Of Demeter)
只与直接的朋友通信。
一个模块或对象应尽量少的与其他模块进行交互,保持相对独立。以便在进行修改时,影响的模块就越少,从而扩展起来就更加容易。
最佳实践:外观模式 & 中介模式。
- 合成复用原则
在一个新对象中使用已存在的对象,使之成为新对象的一部分。
最佳实践:尽量使用合成/聚合,而非继承。
网友评论