原则1:单一原则(Single Responsibility Principle)
一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
优点:
- 可以降低类的复杂度;
- 提高类的可读性;
- 提高系统的可维护性;
- 变更引起的风险降低。
原则2:开闭原则(open closed principle)
一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
优点:
- 提高代码复用性;
- 提高系统的可维护性;
- 面向对象开发的要求。
原则3:里氏替换原则(liskov substitution principle,LSP )
所有引用基类(父类)的地方必须能透明地使用其子类的对象。继承从整体上来看,利大于弊。
优点:
- 提高代码的重用性;
- 提高代码的可扩展性,
- 提高产品或项目的开放性。
缺点:
- 继承是侵入性;
- 降低代码的灵活性;
- 增强了耦合性;
原则4:依赖倒置原则(Dependence Inversion Principle,DIP)
高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,其核心思想是:
要面向接口编程,不要面向实现编程。
优点:
- 降低耦合性;
- 提高稳定性;
- 减少并行开发风险;
- 提高可读性和可维护性。
原则5:接口隔离原则(Interface Segregation Principle, ISP)
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
优点:
- 提高可读性和可维护性;
- 降低耦合性;
- 提高系统稳定性;
- 减少代码冗余。
原则6:迪米特法则(Law of Demeter, LoD)
一个软件实体应当尽可能少地与其他实体发生相互作用。
优点:
- 降低耦合性;
- 提高代码复用性;
- 提高系统可扩展性。
优点汇总:
- 降低耦合性;
- 提高复用性;
- 提高可扩展性;
- 减少代码冗余;
- 提高可读性;
- 提高可维护性;
- 降低风险。
网友评论