Loading

设计模式的七大原则

设计模式的最终目的是使程序:“高内聚、低耦合,可维护、可扩展,有良好复用性、灵活性”

单一职责原则

单一职责原则(Single Responsibility Principle, SRP),一个类/方法/模块只负责一个职责。降低复杂度,提高可读性、可维护性,降低更改引起的风险。

开放-封闭原则

开放-封闭原则(Open-Closed Principle,OCP),软件实体(类/方法/模块等)应该对扩展开放,对修改封闭。简单来说,增加新功能应该在已有代码的基础上进行扩展,而不是修改已有代码。

里氏代换原则

里氏替换原则(Liskvo Substitution Principle,LSP),子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑性为不变及正确性不被破坏

依赖倒置原则

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

  • 高层模块不应该依赖低层模块,高层模块和低层模块都应该依赖于抽象
  • 抽象不应该依赖于具体,具体应该依赖于抽象

接口隔离原则

接口隔离原则(Interface Segregation Principle,ISP),客户不应该依赖它不需要的接口,类间的依赖关系应该建立在最小的接口上。简单来说就是接口内容细分,避免一个接口包括过多的方法,迫使子类去实现所有方法,却没完全得到使用。

合成/聚合复用原则

合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP),一般也叫合成复用原则(Composite Reuse Principle, CRP),尽量使用合成/聚合,而不是通过继承达到复用的目的

迪米特法则

迪米特法则(Law of Demeter,LoD),有时候也叫做最少知识原则(Least Knowledge Principle,LKP),一个软件实体应当尽可能少地与其他实体发生相互作用。

  • 一个对象应该对其他对象保持最少的了解。
  • 类与类之间关系越密切,耦合度越大。
  • 只与直接的朋友通讯,一个对象的"朋友"包括他本身(this)、它持有的成员对象、入参对象、它所创建的对象。

参考:

  • 《大话设计模式》 程杰
posted @ 2021-11-25 19:06  JakeLin  阅读(10)  评论(0编辑  收藏  举报