目录

12-附录1设计模式的七大原则.html

目录
详解 Laravel 源码中优秀的设计模式 - 有明 - 掘金小册

设计模式的七大原则

通过长期对程序开发的归纳和总结,开发者和相关的专业人员,逐渐形成了对优秀程序设计的核心理论定义,也就是我们通常说的设计模式七大原则:

开闭原则( Open Close Principle )

在对程序进行更新迭代的过程中,应当合理的避免修改类或方法的内部代码,而是优先选择通过继承、扩展等方式来实现。简而言之,就是:对扩展开放,对修改关闭。

里氏替换原则( Liskov Substitution Principle )

在实现子类的定义时,应该让它完全拥有替代父类进行工作的能力。简而言之,就是:子类对外要具与父类一致的方法或接口。

依赖倒置原则( Dependence Inversion Principle )

在对象或类的依赖关系定义上,父类或者其他上层实现不应该依赖于子类或者其他下层实现,通过这样,来避免依赖关系的耦合。

单一职责原则( Single Responsibility Principle )

在程序结构和依赖关系的定义上,要将类的功能职责充分理清,尽力减少类之间的耦合。避免对某个类进行修改时,牵一发动全身的连锁反应。

接口隔离原则( Interface Segregation Principle )

在对外接口的定义上,要避免庞大而臃肿的接口,而是进行责任细化的区分,避免冗余的代码实现。这对于提高内聚,提升系统灵活度是非常有效果的。

最少知识原则( Least Knowledge Principle )

在分配类的职责和建立依赖关系时,应该只关注于自身的功能实现和周围与之接触类的交互方式。避免类去考虑整个系统结构和处理流程,让类的职责清晰化,让系统的耦合度降低。

合成复用原则( Composite Reuse Principle )

在扩展功能的时候,要优先考虑水平形式的新增类或方法,而不是通过继承去实现。也就是通过功能的组合实现类,而不是通过基础去实现新的功能。这样可以提高类的可扩展性,减少系统的层次。

这七大原则为我们设计程序提供了指导,可以说是优秀程序设计的方法论。 不过理论往往又是简短而抽象的,大家想要理解并熟练用它们去指导程序设计,还需从大量的实践中去领悟。

留言
  • 合成复用。用组合的方式,在《重构》 那本书里也有讲到。php的trait语法正好可以干这些事情。
  • 一直把合成复用原则给遗弃了,这里算是看到了,支持作者在PHP领域的深入研究