设计模式六大原则

开闭原则(Open Closed Principle,OCP)

  一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。模块应尽量在不修改原(是“原”,指原来的代码)代码的情况下进行扩展。

       优点 : 可复用性,可维护性

里氏代换原则(Liskov Substitution Principle,LSP)

  派生类(子类)对象能够替换其基类(父类)对象被调用.

  优点 : 需求变化时,只须继承,而别的东西不会改变。由于里氏代换原则才使得开放封闭成为可能。这样使得子类在父类无需修改的话就可以扩展。

依赖倒转原则(Dependency Inversion Principle,DIP)

  依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

  优点 : 高层模块不应该依赖低层模块。两个都应该依赖抽象。抽象不应该依赖结节。细节应该依赖抽象.

接口隔离原则(Interface Segregation Principle,ISP)

  客户端不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上.

合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

  合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)经常又叫做合成复用原则。合成/聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。它的设计原则是:要尽量使用合成/聚合,尽量不要使用继承。

最小知识原则(Principle of Least Knowledge,PLK,也叫迪米特法则)  

  一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。迪米特法则不希望类之间建立直接的联系。如果真的有需要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系——这在一定程度上增加了系统的复杂度。

posted @ 2019-02-11 11:24  飞跃云端  阅读(91)  评论(0)    收藏  举报