PHP中的觀察者模式

2021-09-06 02:25:02 字數 989 閱讀 1755

當物件間存在一對多關係時,可以使用觀察者模式(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...