面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则
。
面向对象设计原则也是我们用于评价一个设计模式的使用效果的重要指标之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平。
下面介绍7种设计原型
开闭原则
(Open-Closed Principle)
:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
原则核心:模块功能抽象化,扩展功能交给实现层,代码只增不改
单一职责原则(Single Responsibility Principle):一个类只负责一个功能领域中的相应职责,功能职责分离。
原则核心:高内聚,低耦合
里氏代换原则(Liskov Substitution Principle):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
原则核心:能用到基类的地方,可以用子类代替。
依赖倒转原则
(Dependency Inversion Principle)
:抽象不应该依赖于细节,细节应当依赖于抽象。
原则核心:针对抽象、接口编程,不对实现编程,一般来说是传参或者关联关系中
接口隔离原则
(Interface Segregation Principle)
:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
原则核心:接口功能分割,控制接口粒度,接口太多影响系统可读性,太多灵活性差
合成复用原则
(
Composite Reuse Principle)
:尽量使用对象组合,而不是继承来达到复用的目的。
原则核心:多用关联,少用继承
迪米特法则
(Law of Demeter)
:一个软件实体应当尽可能少地与其他实体发生相互作用。
原则核心:减少对象之间的交互,可以引入第三者降低耦合