对于这个模式的应用场景不是太好总结,只是根据之前的经验,注册表类里面经常会存储一些别的地方需要用到的对象,比如redis、memcache类,还比如配置信息config类等,它扮演的是一个类似于全局变量的角色。具体的实现其实非常简单,如下代码所示:
<?php
class Registry{
static $instance;
public $containers = a...
分类:
Web程序 时间:
2015-07-29 23:07:05
阅读次数:
206
迭代器(Iterator)模式,它在一个很常见的过程上提供了一个抽象:位于对象图不明部分的一组对象(或标量)集合上的迭代。迭代有几种不同的具体执行方法:在数组属性,集合对象,数组,甚至一个查询结果集之上迭代。...
分类:
Web程序 时间:
2015-07-22 13:06:00
阅读次数:
136
调解者模式,这个模式的目的是封装一组对象之间的相互作用,防止对象之间相互干扰,调解者(Mediator)在同事对象(Colleague)之间充当中间汇聚点。
同事对象之间应该保持松散耦合,避免一个对象直接明确指向另一个对象。在调解者模式下,对象的关系和依赖发生冲突时,我们可以使用调解者在耦合的对象之间协调工作流,依赖可以从同事朝调解者或从调解者向同事建立,这两个方向上的依赖都可以使用AbstractColleague或AbstractMediator中断。...
分类:
Web程序 时间:
2015-07-22 13:05:01
阅读次数:
124
1.介绍
1.装饰器模式(Decorator),可以动态地添加修改类的功能
2.一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法
3.使用装饰器模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性。
2.实例
接下来我们举一个例子,使用php实现一个小画板的功能(画指定颜色图形)
1.没使用装饰器之前的传统...
分类:
Web程序 时间:
2015-07-13 20:47:05
阅读次数:
193
1.概念
策略模式:将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式就是策略模式
2.功能
使用策略模式实现Ioc, 依赖倒置, 控制反转
3.举例
假如一个电商网站系统,针对不同的人群要跳转到不同的商品类目,并且所有广告位展示不同的广告
4.要解决的问题
1.不会因为上下文的改变而改变代码(传统都是使用 if else 来判断)
2.如果新增加一种类型的...
分类:
Web程序 时间:
2015-07-12 14:17:18
阅读次数:
178
1.说明
1.适配器模式: 可以将截然不同的函数接口封装成统一的API
2.实际应用举例,PHP的数据库操作有mysql, mysqli, pdo3种,可以用适配器模式统一成一致。类似的场景还有cache适配器,就是将memcache,redis,file,apc等不同的缓存函数统一成一致的
3.下面的例子可以帮助你对付各种数据库链接功能,mysql mysqli, pdo随便选,...
分类:
Web程序 时间:
2015-07-12 14:15:56
阅读次数:
138
《PHP设计模式大全》系列技术文章整理收藏 ? ? 1php设计模式介绍之值对象模式第1/5页 http://www.lai18.com/content/375691.html 2php设计模式介绍之编程惯用法第1/3页 http://www.lai18.com/content/375692.ht...
分类:
Web程序 时间:
2015-06-27 18:33:37
阅读次数:
361
观察者模式
观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
当一个对象的状态发生改变时,依赖他的对象全部会接到通知,...
分类:
Web程序 时间:
2015-06-21 09:32:46
阅读次数:
153
代理模式
在客户端和实体之间建立一个代理对象,客户端对实体的操作全部委派给代理对象,隐藏实体具体实现细节。
Proxy还可以与业务代码分离,部署到另外的服务器,业务代码中通过RPC来委派任务。
代理Proxy.php:
<?php
namespace Components\Proxy;
class Proxy implements IUserProxy {
fun...
分类:
Web程序 时间:
2015-06-21 09:30:42
阅读次数:
162
php面向对象设计模式中,工厂模式,从字面中我们大可以理解为,工厂就是反复的生产,而在设计模式中也可以如此理解,
<?php
header("Content-Type:text/html; charset=utf8");
/**
* php设计模式
* 二:工厂模式
*
*/
// 定义接口DB类
interface DB{
function conn();
}
class...
分类:
其他好文 时间:
2015-06-12 01:00:29
阅读次数:
73