<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 觀察者模式 * * * * * 說明: > 觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象可以同時監聽某一個主題對象,這個主題對象在發生狀態變化時,會通知所有觀察者對象,使它們能夠自動更新自己,解決的是“當一個對象的改變需要同時改變多個其他對象”的問題 適用場景: >1、 當一個抽象模型有兩個方面,其中一個方面依賴于另一個方面,將這兩者封裝在獨立的對象中以使它們可以各自獨立地改變和復用的情況下。 2、當對一個對象的改變需要同時改變其他對象,而又不知道具體有多少對象有待改變的情況下。 3、當一個對象必須通知其他對象,而又不能假定其他對象是誰的情況下。 優缺點: 優點: 1. 支持松耦合,減少依賴性 2. 觀察器可觀察 缺點: 1. 性能降低 2. 內存泄漏 3. 隱藏的依賴項 4. 測試/調試困難 5. 如果在被觀察者之間有循環依賴的話,被觀察者會觸發它們之間進行循環調用,導致系統崩潰,在使用觀察者模式應特別注意這點 實例: ~~~ interface IObserver { function onChanged($sender, $args); } interface IObservable { function addObserver($observer); } class UserList implements IObservable { private $_observers = array();// 觀察者數組 public function addObserver($observer)// 添加觀察者 { $this->_observers [] = $observer; } public function addCustomer($name)// 執行觀察者方法 { foreach ($this->_observers as $obs) $obs->onChanged($this, $name); } } class UserListLogger implements IObserver { public function onChanged($sender, $args) { echo("'$args' added to user list\n"); } } $ul = new UserList (); $ul->addObserver(new UserListLogger ());// 添加觀察者 $ul->addCustomer("Jack"); ~~~ 資料來源: http://www.cnblogs.com/yangjinjin/archive/2013/01/31/2887501.html http://www.cnblogs.com/zhili/p/ObserverPattern.html
                  <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>

                              哎呀哎呀视频在线观看