PHP 设计模式系列 —— 概述及常用设计模式大全

1、设计模式概述

在软件工程中,设计模式(Design Pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。

设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。

并非所有的软件模式都是设计模式,设计模式特指软件“设计”层次上的问题。还有其它非设计模式的模式,如架构模式。同时,算法不能算是一种设计模式,因为算法主要是用来解决计算上的问题,而非设计上的问题。

本系列是常见设计模式的集合以及如何在 PHP 中实现这些设计模式,并为每种模式提供了相应的示例代码。

很多人都知道设计模式,但并非都了解如何在具体应用中实现,基于此我们推出了这一系列教程。

2、常用设计模式大全

设计模式可以按照结构被分成三种不同的类型:

2.1 创建型

在软件工程中,创建型设计模式用于处理对象的实例化:

2.2 结构型

结构型设计模式用于处理类和对象的组合:

2.3 行为型

行为型设计模式用于处理类的对象间通信:

2.4 其它

接下来本系列教程会对上述所有设计模式进行一一讲述,并且与 Laravel 框架结合讨论部分设计模式在 Laravel 中的优秀实践。

本系列教程蓝本参考GitHub项目:https://github.com/domnikl/DesignPatternsPHP

学院君 has written 960 articles

Laravel学院院长,终身学习者

积分:109017 等级:P12 职业:手艺人 城市:杭州

14 条回复

  1. dawu dawu says:
    学院君,我能把你的模式文章转载到我的博客上去吗?
  2. 南山小妖 南山小妖 says:
    读的时候好像理解,但在实际应用中却不知如何施展
  3. young young says:
    @ 白猪 嗯嗯 也有这感觉 文章还是太学术了 有时候读的时候会觉得晦涩难懂 觉得还是缺点实际的例子 如果能多和laravel的源代码结合那就更好了
  4. young young says:
    感谢学院君的辛苦劳作[给力][呵呵] 设计模式这一系列文章有epub或mobi版吗?想在kindle上仔细阅读学习[可怜]

登录后才能进行评论,立即登录?