标签:
观察者设计模式能够更便利创建和查看目标对象状态的对象,并且提供和核心对象非耦合的置顶功能性。观察者设计模式非常常用,在一般复杂的WEB系统中,观察者模式可以帮你减轻代码设计的压力,降低代码耦合。
<?php //观察者设计模式能够更便利创建和查看目标对象状态的对象,并且提供和核心对象非耦合的置顶功能性。 //观察者设计模式非常常用,在一般复杂的WEB系统中,观察者模式可以帮你减轻代码设计的压力,降低代码耦合。 //以一个购物流程为例子 class order { protected $observers = array(); // 存放观察容器 //观察者新增 public function addObServer($type, $observer) { $this->observers[$type][] = $observer; } //运行观察者 public function obServer($type) { if (isset($this->observers[$type])) { foreach ($this->observers[$type] as $obser) { $a = new $obser; $a->update($this); //公用方法 } } } //下单购买流程 public function create() { echo ‘购买成功‘; $this->obServer(‘buy‘); // buy动作 } } class orderEmail { public static function update($order) { echo ‘发送购买成功一个邮件‘; } } class orderStatus { public static function update($order) { echo ‘改变订单状态‘; } } $ob = new order; $ob->addObServer(‘buy‘, ‘orderEmail‘); $ob->addObServer(‘buy‘, ‘orderStatus‘); $ob->create();
转自:http://blog.csdn.net/initphp/article/details/7708006
标签:
原文地址:http://www.cnblogs.com/zhhtao/p/4414713.html