當物件間存在一對多關係時,可以使用觀察者模式(observer pattern)。
乙個物件(目標物件)的狀態發生改變,所有的依賴物件(觀察者物件)都將得到通知,並執行相應方法。
寫乙個簡單的觀察者模式
<?php
/** * 定義觀察者需要實現的介面
* inte***ce sendmsg
*/inte***ce
sendmsg
/* * 觀察者 1
*/class
client1
implements
sendmsg}/*
* 觀察者 2
*/class
client2
implements
sendmsg
}/**
* 事件
* class event
*/class
event
/** * 訊息通知
*/public
function
notify()
}}/** * 執行事件
*/public
function
setorder()
}$event
=new
event()
;//新增觀察者
$event
->
add(
newclient1()
);$event
->
add(
newclient2()
);//執行事件
$event
->
setorder()
;
結果輸出
訂單建立成功!
觀察者 client1 , 收到通知,執行成功!
觀察者 client2 , 收到通知,執行成功!
php中的觀察者模式
當乙個物件狀態發生改變後,會影響到其他幾個物件的改變,這時候可以用觀察者模式。像wordpress這樣的應用程式中,它容外部開發組開發外掛程式,比如使用者授權的部落格統計外掛程式 積分外掛程式,這時候可以應用觀察者模式,先註冊這些外掛程式,當使用者發布一篇博文後,就回自動通知相應的外掛程式更新。觀察...
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...