PHP觀察者模式

2021-07-11 07:51:25 字數 1350 閱讀 6371

我理解的觀察者模式就是,當我們觸發乙個事件的時候,想要把這個操作告訴給我想要告訴的物件,讓他們都執行這個操作,就是將他們繫結到這個事件下。

1.定義乙個基類(用於新增觀察者也就是我想要通知的物件,還有通知觀察者)

eventgenerator.php

<?php

abstract

class

eventgenerator

//通知觀察者

public

function

notify

()

}}?>

定義介面檔案,讓所有觀察者實現update方法observer.php

<?php

inte***ce

observer

?>

定義實現觀察者模式的檔案event.php

<?php

header('content-type:text/html;charset=utf-8');

define('basedir', __dir___);

require

'config.php';

spl_autoload_register('config::autoload');

//定義事件類繼承基類

class

event

extends

eventgenerator

}//新增觀察者1

class

observer1

implements

observer

}//新增觀察者2

class

observer2

implements

observer

}//下面就要開始測試了!

$event = new event();

//新增觀察者到這個事件裡

$event->addobserver(new observer1);

$event->addobserver(new observer2);

//執行trigger操作

$event->trigger();

//這時候就會顯示!

//我要開始更新了啊!

//我是觀察者1,我收到你的通知了!我要幹我該幹的了!

//我是觀察者2,我收到你的通知了!我要幹我該幹的了!

?>

PHP 觀察者模式

觀察者模式 定義物件間的一種一對多的依賴關係,以便當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並自動重新整理 能夠便利地建立檢視目標物件狀態的物件,並且提供與核心物件非耦合的指定功能 外掛程式系統 class observerable public function removeobse...

觀察者模式 php

觀察者模式 當你的某個功能在後期可能新增很多不太相干的功能時,可以考慮使用觀察者模式,如乙個使用者登入類,後期可能要求,記錄登入使用者日誌,簡訊提醒,郵件提醒等功能.個人更願意叫他補丁模式.簡單說,就是將每個補丁定義為乙個類,這些補丁類實現同一介面,這些補丁類實現同一方法.原始類只要接收這些補丁類的...

PHP觀察者模式

觀察者模式 當乙個物件的狀態發生改變時,依賴他的物件會全部收到通知,並自動更新 場景 當乙個事件發生後,要執行一連串更新操作,傳統的程式設計方式,就是在事件的 之後直接加入處理邏輯,當更新邏輯增多之後,變得難以維護,這種方式是耦合式的,侵入式的,增加新的邏輯需要改變事件主題的 觀察者模式實現了低耦合...