php中的觀察者模式

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

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

觀察者模式UML圖:

//主題接口
 接口Subject {
 public function register(Observer $ observer );
public function notify();
}
 // 觀察者接口
 interface Observer {
 public function watch();
}
 //主題
 class Action implements Subject {
 public $ _observers = array ();
公共功能寄存器(Observer $ observer ){
 $ this - > _observers [] = $ observer ;
    }
 //實現藉口
 public function notify(){
                                            foreach $ this - > _observers as $ observer ){
 $ observer - > watch();
        }
     }
 }
 //觀察者
 實現觀察員{
 公共功能的手錶(){
 回聲“貓看電視<HR />” ;
    }
 }
 class Dog implements Observer {
 public function watch(){
 echo “Dog Watches TV <hr />” ;
    }
 }
 類的實現了Observer {
 public function                                        觀看(){
 回聲“人們看電視<hr />” ;
    }
 }
 //應用實例
 $ action = new Action();
$ action - > register(new Cat());
$ action - > register(new People());
$ action - > register(new Dog());
$ action - > notify();        
感興趣的可以嘗試一下
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章