當乙個物件狀態發生改變後,會影響到其他幾個物件的改變,這時候可以用觀察者模式。像wordpress這樣的應用程式中,它容外部開發組開發外掛程式,比如使用者授權的部落格統計外掛程式、積分外掛程式,這時候可以應用觀察者模式,先註冊這些外掛程式,當使用者發布一篇博文後,就回自動通知相應的外掛程式更新。
觀察者模式符合介面隔離原則,實現了物件之間的鬆散耦合。
觀察者模式
uml圖:
//主題介面介面
subject
// 觀察者介面
inte***ce
observer
//主題
class
action
implements
subject
//實現藉口
public function
notify() }
}//觀察者
類
貓實現
觀察員 }
class
dog
implements
observer }
類的
人實現了
observer }
//應用例項
$ action
=new
action();
$ action
- > register(
new
cat());
$ action
- > register(
new
people());
$ action
- > register(
new
dog());
$ action
- > notify();
感興趣的可以嘗試一下
PHP中的觀察者模式
當物件間存在一對多關係時,可以使用觀察者模式 observer pattern 乙個物件 目標物件 的狀態發生改變,所有的依賴物件 觀察者物件 都將得到通知,並執行相應方法。寫乙個簡單的觀察者模式 定義觀察者需要實現的介面 inte ce sendmsg inte ce sendmsg 觀察者 1 ...
php中的觀察者模式
觀察者模式 複製 如下 inte ce subject class boss implements subject public function detach observer public function notify public function subjectstate subject ...
PHP 觀察者模式
觀察者模式 定義物件間的一種一對多的依賴關係,以便當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動重新整理 能夠便利地建立檢視目標物件狀態的物件,並且提供與核心物件非耦合的指定功能 外掛程式系統 class observerable public function removeobse...