分类: 设计模式

7 篇文章

PHP设计模式之装饰模式
装饰模式:通过在运行时合并对象来扩展功能的一种灵活机制。这是一种比较简单的模式,在父类底下造一个装饰子类。现在我们有地形空间(Tile),平原(Plains)是地形空间的一种,然后地形空间都是被污染的与充满钻石的状态。每个地形空间都有相应的能源指数。<?php /** * 装饰模式 * Cre…
PHP设计模式之组合模式
你还记得“组合优于继承”这个设计原则吗?该原则体现了类和对象之间的组织弹性。为了使项目更具灵活性,我们需要将类按一定结构组织起来,以便它们的对象在代码运行时能被构造为有用的结构。下面我们来介绍组合模式,将一组对象组合为可像单一对象一样被使用的结构,这是组合模式的原则。好比是一棵树,有枝有叶,但是你使…
PHP设计模式之抽象工厂模式(二)
平面继承层次的出现是工厂方法模式带来的一个问题。每次添加产品家族时,你就被迫去创建一个相关的具体创造者。一个快速增长的系统会包含原来越多的产品,这样维护起来就会非常的恶心。一个避免这种依赖的办法就是使用clone复制已存在的具体产品,具体产品本身便成了它们自己生成的基础。<?php /** *…
PHP设计模式之抽象工厂模式(一)
在大型应用中,我们很可能需要工厂来生产一组相关的类,抽象工厂模式就闪亮登场了。在大型应用中,我们很可能需要工厂来生产一组相关的类,抽象工厂模式就闪亮登场了。<?php /** * 预约编码器 * Class ApptEncoder */ abstract class ApptEncoder{ …
PHP设计模式之工厂方法模式
继续我们所说的 简单工厂模式 。将制造者类与要生产的产品类分离开来,由制造者的子类来执行实例化。 <?php /** * 预约编码器 * Class AppEncoder */ abstract class AppEncoder{ abstract function encode(); } /…
PHP设计模式之简单工厂模式
工厂模式中的工厂是做什么的呢?工厂是用来制造对象的!这点是必须要明白的。 例子简单说明下是利用不用编码格式实现消息通讯。着重注意产品类和制造类的关系,其他工厂模式会有不同。 <?php /** * 编码器 * Class AppEncoder */ abstract class AppEnco…
PHP设计模式之单列模式
单列模式的应用核心是使用静态方法和静态属性来间接实例化对象。 new self()抛出本对象的实例。 <?php /** * 单列模式 * Class Preferences */ class Preferences{ private $props = array(); private sta…