面向对象的设计原则

在使用面向对象的思想进行系统设计时,前人共总结出了7条原则,它们分别是:单一职责原则、开闭原则、里氏替换原则、依赖注入原则、接口分离原则、迪米特原则和优先使用组合而不是继承原则。编程

1.单一职责原则(SRP)设计模式

单一职责原则的核心思想就是:系统中的每个对象都应该只有一个单独的职责,而全部对象所关注的就是自身职责的完成。它的英文缩写是SRP,英文全称是Single Responsibility Principle。设计

其实单一职责原则的意思就是开发人员常常说的“高内聚、低耦合”。也就是说,每一个类应该只有一个职责,对外只能提供一种功能,而引发类变化的缘由应该只有一个。在设计模式中,全部的设计模式都遵循这一原则。对象

2.开闭原则(OCP)继承

开闭原则的核心思想就是:一个对象对扩展开放,对修改关闭。它的英文缩写是OCP,英文全称是Open for Extension,Closed for Modification。接口

其实开闭原则的意思就是:对类的改动是经过增长代码进行的,而不是改动现有的代码。也就是说,软件开发人员一旦写出了能够运行的代码,就不该该去改变它,而是要保证它能一直运行下去,如何才能作到这一点呢?这就须要借助于抽象和多态,即把可能变化的内容抽象出来,从而使抽象的部分是相对稳定的,而具体的实现层则是能够改变和扩展的。ip

3.里氏替换原则(LSP)ci

里氏替换原则的核心思想就是:在任何父类出现的地方均可以用它的子类来替代。它的英文缩写是LSP,英文全称是Liskov Substitution Principle。开发

其实里氏替换原则的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏代换原则关注的是怎样良好地使用继承,也就是说不要滥用继承,它是继承复用的基石。it

4.依赖注入原则(DIP)

依赖注入原则的核心思想就是:要依赖于抽象,不要依赖于具体的实现。它的英文缩写是DIP,英文全称是Dependence Inversion Principle。

其实依赖注入原则的意思就是:在应用程序中,全部的类若是使用或依赖于其余的类,则都应该依赖于这些其余类的抽象类,而不是这些其余类的具体实现类。抽象层次应该不依赖于具体的实现细节,这样才能保证系统的可复用性和可维护性。为了实现这一原则,就要求开发人员在编程时要针对接口编程,而不针对实现编程。

5.接口分离原则(ISP)

接口分离原则的核心思想就是:不该该强迫客户程序依赖它们不须要使用的方法。它的英文缩写是ISP,英文全称是Interface Segregation Principle。

其实接口分离原则的意思就是:一个接口不须要提供太多的行为,一个接口应该只提供一种对外的功能,不该该把全部的操做都封装到一个接口当中。

6.迪米特原则(LOD)

迪米特原则的核心思想就是:一个对象应当对其余对象尽量少的了解。它的英文缩写是LOD,英文全称是Law of Demeter。

其实迪米特原则的意思就是:下降各个对象之间的耦合,提升系统的可维护性。在模块之间,应该只经过接口来通讯,而不理会模块的内部工做原理,它可使各个模块耦合程度降到最低,促进软件的复用。

7.优先使用组合而不是继承原则(CARP)

优先使用组合而不是继承原则的核心思想就是:优先使用组合,而不是继承。它的英文缩写是CARP,英文全称是Composite/Aggregate Reuse Principle。

其实优先使用组合而不是继承原则的意思就是:在复用对象的时候,要优先考虑使用组合,而不是继承,这是由于在使用继承时,父类的任何改变均可能影响子类的行为,而在使用组合时,是经过得到对其余对象的引用而在运行时刻动态定义的,有助于保持每一个类的单一职责原则。

相关文章
相关标签/搜索