php中的观察者模式

当一个对象状态发生改变后,会影响到其他几个对象的改变,这时候可以用观察者模式。像wordpress这样的应用程序中,它容外部开发组开发插件,比如用户授权的博客统计插件、积分插件,这时候可以应用观察者模式,先注册这些插件,当用户发布一篇博文后,就回自动通知相应的插件更新。

观察者模式符合接口隔离原则,实现了对象之间的松散耦合。

观察者模式UML图:

//主题接口
 接口Subject {
 public function register(Observer $ observer );
public function notify();
}
 // 观察者接口
 interface Observer {
 public function watch();
}
 //主题
 class Action implements Subject {
 public $ _observers = array ();
公共功能寄存器(Observer $ observer ){
 $ this - > _observers [] = $ observer ;
    }
 //实现借口
 public function notify(){
                                            foreach $ this - > _observers as $ observer ){
 $ observer - > watch();
        }
     }
 }
 //观察者
 实现观察员{
 公共功能的手表(){
 回声“猫看电视<HR />” ;
    }
 }
 class Dog implements Observer {
 public function watch(){
 echo “Dog Watches TV <hr />” ;
    }
 }
 类的实现了Observer {
 public function                                        观看(){
 回声“人们看电视<hr />” ;
    }
 }
 //应用实例
 $ action = new Action();
$ action - > register(new Cat());
$ action - > register(new People());
$ action - > register(new Dog());
$ action - > notify();        
感兴趣的可以尝试一下
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值