設計模式PHP版四 觀察者模式

2021-09-16 20:30:41 字數 940 閱讀 6353

意圖:

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

主要解決:

乙個物件狀態改變給其他物件通知的問題,而且要考慮到易用和低耦合,保證高度的協作。

何時使用:

乙個物件(目標物件)的狀態發生改變,所有的依賴物件(觀察者物件)都將得到通知,進行廣播通知。

個人理解:

<?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的介面實現的,如果其他的類要引入觀察者,就要實現這個介面 比如,有乙個這樣的需求,如果產品匯率改變了,所有產品的相關頁面展示資訊和 計算也...