设计模式
NanciZhao
这个作者很懒,什么都没留下…
展开
-
设计模式之工厂模式
p原创 2018-03-07 09:27:21 · 115 阅读 · 0 评论 -
设计模式之单例模式
目的:针对一个类,永远只创建一个对象,PHP实现://单例模式代码实现核心class Singleton { //私有静态成员变量,保存全局实例 private static $instance = null; //私有构造方法,保证外界无法直接实例化 final private function __construct() { } //静态方法,返回此类唯一实例 public static fu...原创 2018-03-07 14:31:12 · 109 阅读 · 0 评论 -
设计模式之观察者模式
目的:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。<?php header("Content-type:text/html; charset=utf-8"); interface Observer { function update(Isubject $s); } class ObserverA implements Observ...原创 2018-03-07 16:16:07 · 133 阅读 · 0 评论 -
设计模式之适配器模式
定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。属于结构型模式主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模式。<?phpheader("Co...原创 2018-03-08 09:52:31 · 117 阅读 · 0 评论 -
设计模式之组合模式与PHP案例
组合模式:让客户端像修改配置文件一样简单的完成递归的动作,免除了客户端的逻辑思考。将对象组合成树状结构以表示‘部分-整体’的层次结构。组合模式能让客户以一致的方式处理个别对象以及组合对象。PHP案例:导航目录的添加与删除:header("Content-type:text/html; charset=utf-8"); abstract class Component { abstract fun...原创 2018-03-08 13:46:58 · 217 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式:用比继承更灵活的方式动态为对象添加更多功能。典型案例:老乡鸡动力面条店<?php header("Content-type:text/html; charset=utf-8"); abstract class Food { abstract function getPrice(); abstract function getDescription(); } class Noo...原创 2018-03-09 11:10:26 · 125 阅读 · 0 评论 -
设计模式之策略模式
策略模式:定义一系列的算法,把他们一个个封装起来,并且使他们可以相互替换。典型案例:会员优惠政策会员级别不同优惠幅度不同,初级会员9.5折,中级会员8.5折,高级会员7折interface Member { function getPrice($price);}class J implements Member { function getPrice($price) { return $pric...原创 2018-03-09 12:55:30 · 119 阅读 · 0 评论 -
PHP里的迭代器Interator接口
迭代器作为一种设计模式的意义非常大。但是迭代器要解决的问题是 通过相同的接口 遍历访问不同的 数据结构,而调用者不需要关心到底 数据结构是 list 还是array 或者是hashtable.当然这在php里面就扯了,因为php里面的array无所不能. 也没有 list 这样的结构(array都包括了)。所以在php里面问这个问题,感觉价值不大... foreach就很好...要说区别,性能上直...转载 2018-04-06 11:55:04 · 139 阅读 · 0 评论