Observer 觀察者模式

2021-06-07 08:42:54 字數 1566 閱讀 8231

觀察者模式:

<?php

inte***ce subject

class loginsubject implements subject }

public function detach(observer $observer)

}self::$observers = $newobservers; }

public function notify() }

public function login()

// 返回登入狀態資訊

public function getstatus()

return $status; }}

inte***ce observer

abstract class loginobserver implements observer

public function update(subject $subject) }

abstract public function doupdate(loginsubject $loginsubject);

}class log extends loginobserver }}

class mail extends loginobserver }}

$loginsubject = new loginsubject();

new log($loginsubject);

new mail($loginsubject);

$loginsubject->notify();

另外,php通過內建的spl擴充套件,提供了對觀察者模式的原生支援。spl是一套可以幫助php程式設計師處理很多物件導向問題的工具,堪稱是一把物件導向的瑞士軍刀。

splobjectstorage是乙個工具類,用於更好的儲存物件和刪除物件。

如下所示:

<?php

class login implements splsubject

public function attach(splobserver $observer)

public function detach(splobserver $observer)

public function notify() }

public function getstatus()

return $res; }}

abstract class loginobserver implements splobserver

public function update(splsubject $subject) }

abstract function doupdate(login $login);

}class log extends loginobserver

}class mail extends loginobserver

}$login = new login();

new log($login);

new mail($login);

$login->notify();

觀察者模式 Observer

個人理解 觀察者模式的核心是subject的attach和detach方法,載入observer物件 uml類圖 實現 public abstract class subject public void detach observer observer public void notify publ...

觀察者模式 ObServer

觀察者模式 observer 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 觀察者模式 observer 觀察者模式定義了一對多依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。讓主題物件在狀態發生變化時,會通知所有觀察者物件,讓他們能夠自動...

觀察者模式(OBSERVER)

觀察者模式是我選擇將其列出來的第乙個模式。看了這個模式的概念之後,有種豁然開朗的感覺。工作也由實踐上公升到了理論。平時使用的各種 net 控制項都使用了這種模式,將這種模式應用到組成乙個系統的各個元件中去,怎乙個 妙 字了得。理解了它之後,不竟又對 net 的框架敬佩有佳。不知道這其中隱藏了多少未知...