注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

~~

~~

 
 
 

日志

 
 

php常见设计模式 观察者模式  

2013-07-09 10:24:45|  分类: php |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
观察者模式是定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
必须包含两个角色:观察者和被观察对象。观察者和被观察者之间存在“观察”的逻辑关联, 当被观察者发生改变时,观察者就会观察到变化,并且做出相应的响应。观察者模式完美地将观察者和被观察者的对象分离开。该模式通常是向一个对象添加一个方法使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察者使用该信息执行的操作与可观察的对象无关。 结果是对象之间互相对话,而不必了解原因。


如:
<?php 
//观察者
interface IObserver { 
    function onChanged($sender,$args); 


//被观察者
interface IObservable { 
    function addObserver($observer); 
}
  
class UserList implements IObservable { 
    private $_observers=array();
    //通知观察者 
    public function addCustomer($name) { 
        foreach ($this->_observers as $obs) { 
            $obs->onChanged($this, $name); 
        } 
    } 
    public function addObserver($observer) { 
        $this->_observers[] = $observer; 
    } 


class UserListLogger implements IObserver { 
    public function onChanged($sender, $args) { 
        echo ("$args 被添加到用户列表中<br />"); 
    } 


$u1=new UserList(); 
$u1->addObserver(new UserListLogger()); 
$u1->addCustomer("红星闪闪"); 
?>
  评论这张
 
阅读(80)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018