91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用PHP實現觀察者模式

發布時間:2021-10-19 09:20:22 來源:億速云 閱讀:112 作者:小新 欄目:web開發

小編給大家分享一下如何使用PHP實現觀察者模式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

觀察者模式為您提供了避免組件之間緊密耦合的另一種方法。該模式非常簡單:一個對象通過添加一個方法(該方法允許另一個對象,即觀察者注冊自己)使本身變得可觀察。當可觀察的對象更改時,它會將消息發送到已注冊的觀察者。這些觀察者使用該信息執行的操作與可觀察的對象無關。結果是對象可以相互對話,而不必了解原因。

一個簡單示例是系統中的用戶列表。下面的代碼顯示一個用戶列表,添加用戶時,它將發送出一條消息。添加用戶時,通過發送消息的日志觀察者可以觀察此列表。

<?php
//首先定義觀察者接口
interface IObserver {
//發生變化的時候觀察者的動作
function onChange($sender,$args) ;
}
//定義被觀察者接口
interface IObservable {
//注冊觀察者的方法
function addObserver($observer);
}
//定義用戶列表類,繼承被觀察者類
class UserList implements IObservable {
//注冊的觀察者列表
private $_observers = array();
//添加用戶的方法
public function addCustomer($name) {
foreach($this->_observers as $obs) {
$obs->onChange($this,$name);
}
}
//注冊觀察者的方法
public function addObserver($observer) {
$this->_observers[] = $observer;
}
}
//定義用戶日志類,也可以是其他的一些操作,繼承觀察者
class UserListLogger implements IObserver {
//實現觀察者的方法
public function onChange($sender,$args){
//這里可以實現當觀察者檢測到觀察事件的時候定義的動作
//比方說發送歡迎郵件之類的
echo "$args added to user list\n";
}
}
//實例化觀察者
$userListLogger = new UserListLogger();
//實例化被觀察者
$userList = new UserList();
//注冊觀察者
$userList->addObserver($userListLogger);
//注冊用戶,觀察者發生動作
$userList->addCustomer('jane');

以上是“如何使用PHP實現觀察者模式”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

越西县| 泾阳县| 东方市| 色达县| 朝阳区| 皋兰县| 嘉祥县| 三河市| 哈巴河县| 渝北区| 大庆市| 元谋县| 南召县| 和田市| 山东省| 泌阳县| 贞丰县| 红原县| 南开区| 集贤县| 光山县| 安庆市| 文成县| 荆州市| 德州市| 抚远县| 阿城市| 秦皇岛市| 城步| 湄潭县| 郧西县| 鲜城| 兴宁市| 汉源县| 陈巴尔虎旗| 清水河县| 涿州市| 芒康县| 扶余县| 沐川县| 读书|