这篇文章给大家介绍如何在PHP项目中应用观察者模式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
专注于为中小企业提供网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业封丘免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。一、首先得有两个接口类,用以框定观察者模式,
一个被观察者接口类(一般申明有三个必须方法:1.添加观察者对象的方法,2.删除观察者对象的方法 ,3.通知观察者进行 相应执行的方法),
一个观察者接口类(一般只有一个必须方法,就是执行)
如果直接甩代码可能有点难理解,那么就先给个示意图来明确一下吧!
二、根据观察者接口类的框定我们定下接口类如下代码:
(示例是网上抄的,因为易于理解,申明一下出处,网址:https://www.jb51.net/article/170753.htm):
三、根据框定的结构,大概的理解一下就是,要实现 被观察者对象 存储各种观察者对象(完成各种功能的对象)存储起来,然后通只各观察者执行自己的功能,先看看如下的实现代码
_observers[]=$observer; } //用于删除观察者对象 public function detach(Observer $observer){ $index = array_search($observer, $this->_observers); if ($index === FALSE || ! array_key_exists($index, $this->_observers)) { return FALSE; } unset($this->_observers[$index]); return TRUE; } //通知各观察者 public function notify(){ //****重点,其实就是循环中执行各观察这对象的watch方法,不同功能方法内容不同但方法名相同 foreach ($this->_observers as $observer) { $observer->watch(); } } } // cat观察者继承类 class Cat implements Observer{ public function watch(){ echo "Cat watches TV
"; } } //dog观察者继承类 class Dog implements Observer{ public function watch(){ echo "Dog watches TV
"; } } //people观察者继承类 class People implements Observer{ public function watch(){ echo "People watches TV
"; } }好了,我们现在通过上面的继承就能明白了,观察者就是定义各种功能的对象(这些对象就是:比如给第一次登录的用户发红包,给用户新的10条文章推送,给非vip用户推送10条需要注册才能打开的视频诱导用户开通vip。。。。),被观察者对象要实现的就是 将添加(注册)的观察者对象存储起来并逐个通知执行观察者各自的功能,
四、那么就进行实例化对象进行操作了!代码如下:
// 应用实例 $action=new Action(); $action->register(new Cat()); $action->register(new People()); $action->register(new Dog()); $action->notify();关于如何在PHP项目中应用观察者模式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
文章标题:如何在PHP项目中应用观察者模式-创新互联
分享路径:http://cdxtjz.cn/article/dippcj.html