// 觀察者模式 主要分為被觀察者,觀察者
// 當(dāng)一個對象(被觀察者)狀態(tài)發(fā)生變化時,依賴它的對象(觀察者)全部會收到通知,并自動更新
// 觀察者模式實現(xiàn)了低耦合,非侵入式的通知與更新機制
// 主題接口
interface Subject{
public function register(Observer $observer);
public function notify();
}
// 觀察者接口
interface Observer{
public function watch();
}
// 主題
class Action implements Subject{
public $_observers = array();
// 把觀察者都放在一個數(shù)組里
public function register(Observer $observer){
$this->_observers[] = $observer;
}
// 通知觀察者變動
public function notify(){
foreach($this->_observers as $observer){
$observer->watch();
}
}
}
// 觀察者
class Cat implements Observer{
public function watch(){
echo "cat";
}
}
class Dog implements Observer{
public function watch(){
echo "dog";
}
}
class People implements Observer{
public function watch(){
echo "people";
}
}
// 應(yīng)用實例
$action = new Action();
$action->register(new Cat());
$action->register(new Dog());
$action->register(new People());
$action->notify();
// 輸出 cat dog people
php設(shè)計模式-觀察者模式
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 單例模式(Singleton Pattern):顧名思義,就是只有一個實例。作為對象的創(chuàng)建模式,單例模式確保某一個...
- 問題: 需要一個對象可以被系統(tǒng)中的任何對象使用 對象不能被隨意被覆蓋 系統(tǒng)不能有超過一個該對象 實現(xiàn): 由于構(gòu)造函...
- 單例模式又稱為職責(zé)模式,它用來在程序中創(chuàng)建一個單一功能的訪問點,通俗地說就是實例化出來的對象是唯一的。所有的單例模...
- 從東海跳出來—— 一個傻乎乎的老大 有時像性烈如火的猛張飛 有時又像一位溫柔善良的姑娘 全身系滿了無數(shù)飄帶 飄帶上...