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

溫馨提示×

溫馨提示×

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

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

如何在PHP中實現一個觀察者模式

發布時間:2021-04-15 16:12:36 來源:億速云 閱讀:155 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何在PHP中實現一個觀察者模式,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

觀察者模式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中實現一個觀察者模式了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

php
AI

府谷县| 定陶县| 镇巴县| 纳雍县| 车险| 阿克苏市| 安国市| 论坛| 丹寨县| 资兴市| 砀山县| 石台县| 泽普县| 龙山县| 大石桥市| 望谟县| 灵璧县| 孟村| 武平县| 普定县| 亳州市| 海南省| 科技| 肥东县| 绥宁县| 贵州省| 原平市| 响水县| 南澳县| 枣阳市| 滨州市| 阳春市| 临邑县| 津市市| 天长市| 临汾市| 容城县| 洛浦县| 云龙县| 安乡县| 环江|