<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## **觀察者模式** 觀察者模式(Observer),當一個對象狀態發生變化時,依賴它的對象全部會收到通知,并自動更新。 ## 應用場景 一個事件發生后,要執行一連串更新操作。 觀察者模式實現了低耦合,非侵入式的通知與更新機制。 > 傳統的編程方式,就是在事件的代碼之后直接加入處理的邏輯。 > 當更新的邏輯增多之后,代碼會變得難以維護。這種方式是耦合的,侵入式的,增加新的邏輯需要修改事件的主體代碼。 ## 代碼設計實現 ~~~ //定義事件抽象類 abstract class EventGen{ private $observers; //添加觀察者對象 public function addObserver($observer){ $this->observers[] = $observer; } //通知觀察者對象 public function notify(){ foreach($this->observers as $observer){ $observer->update(); } } } //實現事件抽象類的具體類 class Event extends EventGen{ public function trigger(){ echo "trigger event<br>"; } } //觀察者接口 interface Observer{ public function update(); } //觀察者1類 class Observer1 implements Observer{ public function update() { echo 'logic one<br>'; } } //觀察者2類 class Observer2 implements Observer{ public function update() { echo 'logic two<br>'; } } $event = new Event(); $observer1 = new Observer1(); $observer2 = new Observer2(); $event->addObserver($observer1); $event->addObserver($observer2); $event->trigger(); $event->notify(); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看