PHP设计模式

 

设计模式总的分为三种,建立型模式、结构性模式、行为型模式php

一、建立型模式html

建立型模式为根据实际状况来建立对象,建立的模式又分为对象建立模式和类建立模式,对象建立模式会把对象建立的一部分在另外一个对象中实现,类建立模式则将它对象的建立在子类中实现。mysql

二、结构性模式web

结构性模式为处理模块之间的耦合关系算法

三、行为型模式sql

行为型模式数据库

 

建立型 (Creational)
一、简单工厂(Simple Factory):不一样于静态工厂是由于不使用static方法
二、工厂方法(Simple Factory):一个class建立一个你想要使用的对象 [code] http://www.phptherightway.com/pages/Design-Patterns.html
三、抽象工厂(Abstract Factor):不使用特定的类来建立相关或是不相关的对象,建立的类都继承相同的接口,抽象工厂不关心对象是如何建立的,he just knows how they go together
四、生成器 (Builder):一个接口,用来建立复杂对象的部分
五、原型 (Prototype):经过建立一个原型对象,而后复制原型(clone)对象来避免经过标准的方式建立大量的对象产生的开销
六、单例 (Singleton):当设计一个web应用的时候,保证一个类仅有一个实例,并提供一个访问他的全局访问点例如框架中的数据库链接 [code]http://www.phptherightway.com/pages/Design-Patterns.html
七、静态工厂(Static Factory):和简单工厂很像,只是使用了静态对象
八、对象池 (pool):对新建立的对象应用一系列的初始化操做,让对象保持当即可以使用的状态
九、多例 (Multition):使类仅有一个命名的对象的集合可供使用,像单例模式可是有多个实例。好比2 个数据库链接,好比,一个链接MySQL,另外一个链接SQLite设计模式

结构型 (Structural)
一、适配器 (Adapter):将不一样接口适配成统一的API接口,例如数据操做有mysql、mysqli、pdo等,可利用适配器模式统一接口
二、桥接模式 (Bridge):将抽象部分与它的实现部分分离,使它们均可以独立的变化
三、合成模式 (Composite):将对象组合成树形结构以表示“部分总体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具备一致性。
四、装饰器模式(Decorater):不修改原类代码和继承的状况下动态扩展类的功能,例如框架的每一个Controller文件会提供before和after方法
五、外观模式 (Facade):是指提供一个统一的接口去访问多个子系统的多个不一样的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
六、享元模式 (Flyweight):把常常要使用到的对象共享起来,而不去重新建立而占用内存。 http://lobert.iteye.com/blog/2066311
七、代理模式 (Proxy):为昂贵或者没法复制的资源提供接口
八、注册模式 (Registry):为应用中经常使用的对象实现一个中央存储,一般用一个只有静态方法的抽象类来实现(或者使用单例模式)框架

行为型(Behavioral)
一、责任链模式 (Chain of Responsibilities):使多个对象都有机会处理请求,从而避免请求的发送者和接受者耦合的关系。将这个对象造成一条链,并沿着这条链传递该请求,直到有对象处理它为止。
二、命令模式 (Command):命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不一样的对象。
三、解释器模式 (Interpreter):用于分析一个实体的关键元素,而且针对每一个元素提供本身的解释或相应动做
四、迭代器模式 (Iterator):提供一个方法顺序访问一个聚合对象中各个元素,在PHP中将继承Iterator类
五、中介者模式 (Mediator):用一个中介者对象来封装一系列的对象交互。中介者使得各对象不须要显式地相互引用,从而使其松散耦合,并且能够独立地改变它们之间的交互。
六、备忘录模式 (Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象以外保存这个状态。这样能够在之后把该对象的状态恢复到以前保存的状态。
七、观察者模式 (Observer):定义对象间一种一对多的依赖关系,当一个对象的状态发生改变时,全部依赖于它的对象都获得通知并自动更新。如微博关注博主,博主更新,关注者都能获得通知
八、状态模式 (State):状态模式容许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类同样
九、策略模式 (Strategy):针对一组算法,将每个算法封装到具备共同接口的独立的类中,例如进入我的主页时,根据浏览者的不一样,给予不一样的显示与操做 [code]http://www.phptherightway.com/pages/Design-Patterns.html
十、模板方法模式(Template Method):定义一个操做中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类能够在不改变一个算法的结构的状况下重定义该算法的某些特定的步骤
十一、访客模式 (Visitor): 访问者模式表示一个做用于某对象结构中的各元素的操做。它使你能够在不改变各元素类的前提下定义做用于这些元素的新操做。ui

相关文章
相关标签/搜索