php觀察者模式。

2022-02-11 19:17:40 字數 1116 閱讀 4339

我也剛學設計模式,所以記錄下來。

<?php 

class person

public function __get($name)

}//觀察者類實現splsubject介面,splsubject是php內建介面

class personsubject implements splsubject

//增加乙個觀察者

public function attach(splobserver $observers)

//刪除乙個觀察者

public function detach(splobserver $observers)

//達到條件時,通知觀察者

public function notify()

} //返回被觀察者例項,供觀察者處理

public function getperson()

}//觀察者實現splobserver介面,splobserver是php內建介面

class fatherobserver implements splobserver

}class motherobserver implements splobserver

}class sisterobserver implements splobserver

}//例項化小明

$xiaoming=new person();

$xiaoming->name='小明';

$xiaoming->birthday='0512';

//繫結觀察者

$subject=new personsubject($xiaoming);

$subject->attach(new fatherobserver);

$subject->attach(new motherobserver);

$subject->attach(new sisterobserver);

//如果小明生日到了,通知觀察者

$date=date('md',time());

if($xiaoming->birthday==$date)

?>

輸出

大家自己看吧,專案中我也沒用到觀察者模式,鬱悶!

PHP 觀察者模式

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

PHP觀察者模式

我理解的觀察者模式就是,當我們觸發乙個事件的時候,想要把這個操作告訴給我想要告訴的物件,讓他們都執行這個操作,就是將他們繫結到這個事件下。1.定義乙個基類 用於新增觀察者也就是我想要通知的物件,還有通知觀察者 eventgenerator.php abstract class eventgenera...

觀察者模式 php

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