php設計模式之觀察者模式的應用詳解

2022-10-04 12:39:11 字數 1053 閱讀 8789

觀察者模式:定義物件間一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動更新。

觀察者類:

1.抽象主題角色:主題角色將所有對觀察者物件的引用儲存在乙個集合中,每個主題可以任意多個觀察者。抽象主題提供了增加和刪除觀察者物件的介面。

2.抽象觀察者角色:為所有的具體觀察者定義乙個介面,在觀察的主題發生改變時更新自己

3.具體主題角色:儲存相關狀態到具體觀察者物件,當具體主題的內部狀態發生改變時,給所有登記過的觀察者發出通知。具體主題角色通常用乙個具體子類實現。

4.具體觀察者角色:儲存乙個具體主題物件,儲存相關狀態,實現抽象觀察者角色所要求的更新介面,以使得其自身狀態和主題的狀態保持一致

作用:1. 觀察者模式的耦合度較小

2.支援廣播通訊

複製** **如下:

php//抽象主題

inte***ce subject

//具體主題

class concreatesubject implements subject

public function attach($observer)

public function detach($observer)

&程式設計客棧nbsp;         unset($this->_observer[$index]);

return true;

}public function nyhmomwepbbotifyobservers()

foreach($this->_observers as $observer)

return true;

}}//抽象觀察者

inte***ce observer

//具體觀察者

class concreteobserver implement observer

public function update()

}//客戶端

class client

}client::main();

?>

本文標題: php設計模式之觀察者模式的應用詳解

本文位址:

php設計模式之 觀察者模式

觀察者模式 observer 當乙個物件狀態發生改變時,依賴它的物件全部收到通知,並自動更新。抽象被觀察者 abstract class eventgenerator 通知所有觀察者 public function notify 具體被觀察者class event extends eventgene...

PHP 設計模式之觀察者模式

介紹現在有兩派,有的人建議使用設計模式,有的人不建議使用設計模式!這就向寫文章一樣,有的人喜歡文章按照套路走,比如敘事性質的文章,時間,地點,人物,事件。而有的人喜歡寫雜文或者散文,有的人喜歡寫詩詞!很多時候,我看設計模式的時候,有些設計模式只是吻合我的 習慣。但是你硬去套它,那麼反而適得其反。很多...

php 設計模式之觀察者模式

觀察者模式 1.抽象事件發生類 abstract class eventgenerator 對 所有 觀察者 進行 事件 通知 function notify 2.宣告具體事件類 class event extends eventgenerator 3.宣告 乙個 觀察者 介面 inte ce ob...