意圖:
定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。
主要解決:
乙個物件狀態改變給其他物件通知的問題,而且要考慮到易用和低耦合,保證高度的協作。
何時使用:
乙個物件(目標物件)的狀態發生改變,所有的依賴物件(觀察者物件)都將得到通知,進行廣播通知。
個人理解:
<?php
/** * 事件產生類
* * class eventgenerator
*/abstract class eventgenerator
/*** 事件通知
*/public function notify()
}}/**
* 觀察者介面類
* * inte***ce observer
*/inte***ce observer
/** * 觀察者1
*/class observer1 implements observer
}/**
* 觀察者2
*/class observer2 implements observer
}/**
* 事件
* * class event
*/class event extends eventgenerator
}$event = new event(); // 1.建立乙個事件
$event->add(new observer1()); // 2.1.新增觀察者
$event->add(new observer2()); // 2.2.新增觀察者
$event->trigger(); // 3.通知觀察者
php設計模式 觀察者模式
簡言之 觀察者模式 observer 當乙個物件狀態發生改變時,依賴它的物件全部會收到通知,並自動更新。具體描述 乙個物件通過新增乙個方法 該方法允許另乙個物件 觀察者,註冊自己 使本身變得可觀察。當可觀察的物件更改時,它會將訊息傳送到已註冊的觀察者。這些觀察者使用該資訊執行的操作與可觀察的物件無關...
PHP 設計模式 觀察者模式
觀察者模式 乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。1 定義乙個專案subjects抽象類 乙個觀察者observers抽象類。subject 實現三個方法,1,新增add 刪除 remove 通知 notify。observe 實現update 方法 格式和組合模式有點...
php設計模式 觀察者模式
在web應用中,通常,一些小範圍的資料和業務的改變,其他相關的業務資料也需要發生改變,這種情況,觀察者模式很適合。觀察者模式,通常是通過使用乙個叫observer的介面實現的,如果其他的類要引入觀察者,就要實現這個介面 比如,有乙個這樣的需求,如果產品匯率改變了,所有產品的相關頁面展示資訊和 計算也...