91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP項目中應用觀察者模式

發布時間:2021-06-07 16:54:50 來源:億速云 閱讀:99 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在PHP項目中應用觀察者模式,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、首先得有兩個接口類,用以框定觀察者模式,

一個被觀察者接口類(一般申明有三個必須方法:1.添加觀察者對象的方法,2.刪除觀察者對象的方法 ,3.通知觀察者進行  相應執行的方法),

一個觀察者接口類(一般只有一個必須方法,就是執行)

如果直接甩代碼可能有點難理解,那么就先給個示意圖來明確一下吧!

如何在PHP項目中應用觀察者模式

二、根據觀察者接口類的框定我們定下接口類如下代碼:

(示例是網上抄的,因為易于理解,申明一下出處,網址:https://www.jb51.net/article/170753.htm):

<?php
// 被觀察者接口
interface Subject{
  public function register(Observer $observer); //添加(注冊)觀察者對象
  public function detach(Observer $observer);  //刪除觀察者對象
  public function notify();           //通知觀察者執行相應功能
}
// 觀察者接口
interface Observer{
  public function watch();  //觀察者要執行的方法
}

三、根據框定的結構,大概的理解一下就是,要實現 被觀察者對象 存儲各種觀察者對象(完成各種功能的對象)存儲起來,然后通只各觀察者執行自己的功能,先看看如下的實現代碼

<?php
// 被觀察者繼承類
class Action implements Subject{
   public $_observers=array(); //用于存儲觀察者對象
   //用于添加(注冊)觀察者對象
   public function register(Observer $observer){
     $this->_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<hr/>";
   }
 } 
 //dog觀察者繼承類
 class Dog implements Observer{
   public function watch(){
     echo "Dog watches TV<hr/>";
   }
 } 
 //people觀察者繼承類
 class People implements Observer{
   public function watch(){
     echo "People watches TV<hr/>";
   }
 }

好了,我們現在通過上面的繼承就能明白了,觀察者就是定義各種功能的對象(這些對象就是:比如給第一次登錄的用戶發紅包,給用戶最新的10條文章推送,給非vip用戶推送10條需要注冊才能打開的視頻誘導用戶開通vip。。。。),被觀察者對象要實現的就是 將添加(注冊)的觀察者對象存儲起來并逐個通知執行觀察者各自的功能,

四、那么就進行實例化對象進行操作了!代碼如下:

// 應用實例
$action=new Action();
$action->register(new Cat());
$action->register(new People());
$action->register(new Dog());
$action->notify();

關于如何在PHP項目中應用觀察者模式就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

邹平县| 西昌市| 色达县| 青河县| 图片| 太谷县| 松潘县| 宁陕县| 定结县| 西安市| 峡江县| 长宁区| 昂仁县| 黄骅市| 广元市| 蛟河市| 雅江县| 开阳县| 通山县| 昌邑市| 固镇县| 陵川县| 和静县| 张家界市| 洛南县| 伊宁市| 威海市| 盖州市| 鸡西市| 长武县| 沂水县| 萨嘎县| 凤阳县| 浑源县| 莱西市| 广宗县| 乌拉特后旗| 荥阳市| 浙江省| 乌兰县| 延寿县|