PHP设计模式笔记:使用PHP实现策略模式 【意图】 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。策略模式可以使算法可独立于使用它的客户而变化 策略模式变化的是算法 【策略模式结构图】 [caption id="attachment_851" align="aligncenter" width="617" caption="策略模式"] […
PHP设计模式笔记:使用PHP实现状态模式 【意图】 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 状态模式变化的位置在于对象的状态 【状态模式结构图】 [caption id="attachment_847" align="aligncenter" width="464" caption="状态模式"] [/caption] 【状…
PHP设计模式笔记:使用PHP实现适配器模式 【意图】 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那此类可以一起工作【GOF95】 【适配器模式结构图】 [caption id="attachment_821" align="aligncenter" width="370" caption="类适配器…
PHP设计模式笔记:使用PHP实现工厂模式 【意图】 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使用一个类的实例化延迟到其子类【GOF95】 【工厂模式结构图】 [caption id="attachment_794" align="aligncenter" width="652" caption="工厂方法模式"] …
PHP设计模式笔记:使用PHP实现原型模式 【意图】 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 【原型模式结构图】 【原型模式中主要角色】 抽象原型(Prototype)角色:声明一个克隆自身的接口 具体原型(Concrete Prototype)角色:实现一个克隆自身的操作 【原型模式的优点和缺点】 Prototype模式优点: 1、…
PHP设计模式笔记:使用PHP实现门面模式 【意图】 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层次的接口,使得子系统更加容易使用【GOF95】 外部与子系统的通信是通过一个门面(Facade)对象进行。 【门面模式结构图】 [caption id="attachment_770" align="aligncenter" width…
PHP设计模式笔记:使用PHP实现单例模式 【意图】 保证一个类仅有一个实例,并且提供一个访问它的全局访问点【GOF95】 单例模式有三个特点: 1、一个类只有一个实例 2、它必须自行创建这个实例 3、必须自行向整个系统提供这个实例 【单例模式结构图】 [caption id="attachment_741" align="aligncenter" widt…
PHP设计模式笔记:使用PHP实现桥梁模式 【意图】 将抽象部分与它的实现部分分享,使它们都可以独立的变化【GOF95】 【桥梁模式结构图】 [caption id="attachment_736" align="aligncenter" width="588" caption="桥梁模式"] [/caption] 【桥梁模式中主要角色】 抽象化(Abstr…