面向对象设计模式原则

7种常用的面相对象设计原则

  • 单一职责原则(SRP):一个类只负责一个功能领域中的相应指责,就一个类而言,应该只有一个引起它变化的原因(可以实现低耦合,换句话说就是要承担的责任少,被复用的就频繁)

  • 开闭原则(OCP):软件实体对扩展开放,对修改关闭。(可以在添加辅助属性的时候关联软件实体,加入新属性,形成新的扩展软件实体)不能再修改抽象层的代码.

  • 里氏代换原则(LSP):所有引用父类的地方都能够透明的使用其子类的对象。(当需要扩展一个新的子类的时候,可以继承基类进行操作类的新行为而不需要修改之前的子类代码)

  • 依赖倒转原则(DIP):抽象不应该依赖与细节,细节应该依赖于抽象。高层模块不应该依赖于底层模块,二者都应该依赖于抽象(这个概念很抽象)。
    (个人理解:在JAVA中,我们将不具体的称为抽象,如接口和抽象类。将具体的称为细节。抽象不可以被实例化,细节可以被实例化。高层的client调用底层的细节的时候,应该调用中间的抽象层,底层的细节也要依赖于中间的抽象层,这样我们可以针对抽象层编码)这里有对DIP的详细解释

  • 接口隔离原则(ISP):使用多个专门的接口,而不是使用单一的总接口。(这个就好理解多了,也是为了减少耦合度,跟单一职责原则类似)

  • 合成复用原则(CRP):又称组合/聚合复用原则。尽量使用对象组合,而不是继承来达到复用的目的。(继承的缺点多,会破环系统的封装性)

  • 迪米特法则(LoD):又称最少知识原则。指一个软件实体应尽量少的和其他软件实体发生相互作用。(这样当对一个模块进行修改的时候,尽量少的影响到其他模块)

你可能感兴趣的:(面向对象设计模式原则)