① 策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式。② 实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告。在 Common 目录下新建UserStrategy.php,定义接口:strategy-...
分类:
Web程序 时间:
2015-04-11 14:42:41
阅读次数:
133
① 适配器模式可以将截然不同的函数接口封装成统一的 API② 实际应用举例:PHP 的数据库操作有 mysql,mysqli,pdo 三种,可以用适配器模式统一成一致。类似的场景还有 cache 适配器,将 Memcache,Redis,file,apc 等不同的缓存函数,统一成一致代码实现:在 C...
分类:
Web程序 时间:
2015-04-11 13:07:29
阅读次数:
209
今天的PHP设计模式系列的主角是迭代器(Iterator)模式,迭代器模式提供了抽象:位于对象图不明部分的一组对象(或标量)集合上的迭代。迭代器(Iterator)模式,它在一个很常见的过程上提供了一个抽象:位于对象图不明部分的一组对象(或标量)集合上的迭代。迭代有几种不同的具体执行方法:在数组属性...
分类:
Web程序 时间:
2015-04-11 01:15:11
阅读次数:
209
三种基础设计模式(所有面向对象设计模式中最常见的三种):① 工厂模式:使用工厂方法或者类生成对象,而不是在代码中直接new在 Common 目录下新建 Factory.php:<?phpnamespace Common;class Factory{ static function create...
分类:
Web程序 时间:
2015-04-10 23:50:24
阅读次数:
203
委托模式通过分配或委托其他对象,委托设计模式能够去除核心对象中的判决和复杂的功能性。应用场景设计了一个cd类,类中有mp3播放模式,和mp4播放模式改进前,使用cd类的播放模式,需要在实例化的类中去判断选择什么方式的播放模式改进后,播放模式当做一个参数传入playList函数中,就自动能找到对应需要...
分类:
Web程序 时间:
2015-04-10 17:42:01
阅读次数:
239
解释器模式解释器模式 用于分析一个实体的关键元素,并且针对每个元素提供自己的解释或相应动作。解释器模式非常常用,比如PHP的模板引擎 就是非常常见的一种解释器模。代码: '; public function run($str) { ...
分类:
Web程序 时间:
2015-04-10 17:40:01
阅读次数:
134
观察者模式观察者设计模式能够更便利创建和查看目标对象状态的对象,并且提供和核心对象非耦合的置顶功能性。观察者设计模式非常常用,在一般复杂的WEB系统中,观察者模式可以帮你减轻代码设计的压力,降低代码耦合。场景设计设计一个订单类订单创建完成后,会做各种动作,比如发送EMAIL,或者改变订单状态等等。原...
分类:
Web程序 时间:
2015-04-10 17:31:37
阅读次数:
152
中介者模式中介者模式用于开发一个对象,这个对象能够在类似对象相互之间不直接相互的情况下传送或者调解对这些对象的集合的修改。一般处理具有类似属性,需要保持同步的非耦合对象时,最佳的做法就是中介者模式。PHP中不是特别常用的设计模式。设计场景:我们有一个CD类和一个MP3类,两个类的结构相似。我们需要在...
分类:
Web程序 时间:
2015-04-10 17:22:42
阅读次数:
158
外观模式通过在必需的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了调用对象的复杂性。外观设计模式和建造者模式非常相似,建造者模式一般是简化对象的调用的复杂性,外观模式一般是简化含有很多逻辑步骤和方法调用的复杂性。应用场景设计一个User类,里面有getUser获取用户信息接口在使用getU...
分类:
Web程序 时间:
2015-04-10 17:21:32
阅读次数:
146
PHP迭代器:可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据。(不是特别常用,在PHP中)使用场景:1.访问一个聚合对象的内容而无需暴露它的内部表示。2.支持对聚合对象的多种遍历。3.为遍历不同的聚合结构提供一个统一的接口(即,多态迭代)。PHP代码实现: v...
分类:
Web程序 时间:
2015-04-10 17:16:27
阅读次数:
113