《PHP设计模式》by Aaron Saray一书中,一共把设计模式分为了十七种。
1.适配器模式--只是将对象的接口适配为另一个对象所期望的接口。在需要转化一个对象的接口用于另一对象时,实现Adapter对象是最佳做法。
2.建造者模式--定义了处理其他对象的复杂构建的对象设计。目的是消除其他对象复杂的创建过程。使用建造模式可以在某个对象的构造和配置方法改变时尽可能地减少重复更改的代码。
3.数据访问对象模式--描述了如何创建提供透明访问任何数据源的对象。减少了重复和抽象化数据,如sql语句等。
4.装饰器模式--如果已有对象的部分内容或功能性发送改变,但不需要修改原始对象的结构,那么装饰器模式最合适。
5.委托模式--通过分配或委托至其他对象,委托模式能够去除核心对象中的判决和复杂的功能性。并且能动态地添加新功能。
6.外观模式--通过在必需的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性。在应用程序进程中的下一步骤包含许多复杂逻辑步骤和方法调用时,最佳的做法是创建一个基于外观模式的对象。
7.工厂模式--工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类的步骤。(请求需要某些逻辑和步骤才能确定基对象的类实例时)
8.解释器模式--用于分析一个实体的关键元素,并且针对每个元素都提供自己的解释或相应的动作。
9.迭代器模式--迭代器设计模式可帮助构造特定对象,哪些对象可以提供单一标准接口循环或迭代任何类型的可计数数据。通常用spl迭代器标准接口创建。
10.中介者模式--用于开发一个对象,这些对象能够在类似对象相互之间不交互的情况下传送或调解对这些集合的修改。
11.观察者模式--观察者模式能够更便利地创建查看目标对象状态的对象,并且提供与核心对象非耦合的指定功能性。
12.原型设计模式创建对象的方式是复制和克隆初始对象或原型,这种方式比创建新实例更为有效。
13.代理模式,代理设计模式构建了透明置于两个不同对象之内的一个对象,从而能够截取或代理这两个对象间的通信和访问。
14.单例模式(单元素模式)通过提供对自身共享实例的访问,单元素设计模式用于限制特定对象只能被创建一次。
15.策略模式--策略模式帮组构建的对象不必自身包含逻辑而是能够根据需要利用其它对象中的算法。
16.模板模式--模板设计模式创建了一个实施一组方法和功能的抽象对象,子类通常将这个对象作为模板用于自己的设计。
17.访问者模式--访问者模式构造了包含某个算法的截然不同的对象,在父对象以标准方式使用这些对象时,就会将该算法应用于父对象。