久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP觀察者模式原理與簡單實現方法示例

這篇文章主要介紹了PHP觀察者模式原理與簡單實現方法,結合實例形式分析了php觀察者模式的概念、原理、實現方法及相關注意事項,需要的朋友可以參考下

本文實例講述了PHP觀察者模式原理與簡單實現方法。分享給大家供大家參考,具體如下:

當一個對象狀態發生改變后,會影響到其他幾個對象的改變,這時候可以用觀察者模式。像wordpress這樣的應用程序中,它容外部開發組開發插件,比如用戶授權的博客統計插件、積分插件,這時候可以應用觀察者模式,先注冊這些插件,當用戶發布一篇博文后,就回自動通知相應的插件更新。

觀察者模式符合接口隔離原則,實現了對象之間的松散耦合。

觀察者模式UML圖:

PHP觀察者模式原理與簡單實現方法示例

在php SPL中已經提供SplSubject和SqlOberver接口

interface SplSubject
{
  function attach(SplObserver $observer);
  function detach(SplObserver $observer);
  function notify();
}
interface SqlObserver
{
  function update(SplSubject $subject);
}

下面具體實現上面例子

class Subject implements SplSubject
{
  private $observers;
  public function attach(SplObserver $observer)
  {
    if (!in_array($observer, $this->observers)) {
      $this->observers[] = $observer;
    }
  }
  public function detach(SplObserver $observer)
  {
    if (false != ($index = array_search($observer, $this->observers))) {
      unset($this->observers[$index]);
    }
  }
  public function post()
  {
    //post相關code
    $this->notify();
  }
  private function notify()
  {
    foreach ($this->observers as $observer) {
      $observer->update($this);
    }
  }
  public function setCount($count)
  {
    echo "數據量加" . $count;
  }
  public function setIntegral($integral)
  {
     echo "積分量加" . $integral;
  }
}
class Observer1 implements SplObserver
{
  public function update($subject)
  {
    $subject-> setCount(1);
  }
}
class Observer2 implements SplObserver
{
  public function update($subject)
  {
    $subject-> setIntegral(10);
  }
}
class Client
{
  public function test()
  {
    $subject = new Subject();
    $subject->attach(new Observer1());
    $subject->attach(new Observer2());
    $subject->post();//輸出:數據量加1 積分量加10
  }
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP基本語法入門教程》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 免费三级网 | 国产精品久久久久久吹潮日韩动画 | 亚洲综合在线播放 | 五月网婷婷 | 亚洲成人精品一区二区 | 国产99久久精品一区二区永久免费 | 国产乱码精品一品二品 | 精品久久久一区 | 欧美在线精品一区 | 亚洲 欧美 另类 综合 偷拍 | 国内91在线| 色999视频 | 视频二区国产 | 在线不卡视频 | 精品亚洲一区二区三区四区五区 | 久久综合久 | 隔壁老王国产在线精品 | 欧美日韩一区在线 | 青青久草| 国产午夜av片 | 欧美一级全黄 | 亚洲视频一区在线观看 | 国产一区不卡在线观看 | 日本精品一区二区三区在线观看视频 | 91视频免费在观看 | 国产福利二区 | 丁香婷婷久久久综合精品国产 | 操操日| 精品一区二区在线观看 | 日韩一 | 色综合一区二区 | 久久久国产一区二区三区四区小说 | 久久这里只有精品首页 | 超碰免费在线 | 九九久久久 | 2023亚洲天堂 | 精品国产欧美一区二区 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 国产精品久久久久aaaa樱花 | 国产二区三区 | 免费精品久久久久久中文字幕 |