中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

PHP中觀察者模式的原理和應用

發布時間:2021-06-23 11:33:32 來源:億速云 閱讀:130 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP中觀察者模式的原理和應用”,在日常操作中,相信很多人在PHP中觀察者模式的原理和應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP中觀察者模式的原理和應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

觀察者:

它是一種事件系統,意味著這一模式允許某個類觀察另一一個類的狀態,當被觀察的類狀態發生改變的時候,觀察類可以收到通知并且做出相應的動作;觀察者模式提供了避免組件之間緊密耦合的另一種方法;

我們還是以代碼為例,我們新建一個文件,然后定義一個類,然后在類里面寫入一個成員屬性,他是一個數組用來存放觀察者,緊接著我們在定義一個方法,這個方法是用來存放觀察者和添加觀察者的,當被觀察者做出行為的時候,讓觀察者得到通知,并且做出一定反應,代碼為例:

<?php
class Man
{
//用來存放觀察者
protected $observers = [];
//添加觀察者方法
function addObserver($observer)
{
  $this->observers[]=$observer;
}
//花錢方法
function buy()
{
//當被觀察者做出這個行為的時候,讓觀察者得到通并且做出一-定的反應
foreach ($this->observers as $girl) {
  $girl->pome();
}
}
}
class GirlFriend
{
function pome()
{
echo'我只明白一件事,愛一個人,是那么痛苦<br />';
}
}
//創建對象
$xiaoming = new Man();
$xiaohua =new GirlFriend();
$xiaoli = new GirlFriend();
//添加觀察者
$xiaoming->addObserver( $xiaohua); 
$xiaoming->addObserver($xiaoli);
$xiaoming->buy();

運行結果如下:

PHP中觀察者模式的原理和應用

有添加觀察者這樣一個方法,那就有刪除觀察者的方法,因此我們還要添加一個刪除觀察者的方法,

function delObserver($observer)
{
//查找對應值在數組中的鍵
$key = array_search($observer,$this->observers);
//根據鍵刪除值,并且數組重新索引
array_splice($this->observers, $key, 1);
}
}

//刪除

$xiaoming->delObserver( $xiaohua);

代碼如下:

PHP中觀察者模式的原理和應用

到此,關于“PHP中觀察者模式的原理和應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

php
AI

宁陵县| 明溪县| 林州市| 苗栗市| 环江| 泾源县| 交城县| 于田县| 苍梧县| 桐城市| 依安县| 屯门区| 蓬安县| 绍兴市| 昌黎县| 大渡口区| 东至县| 衡东县| 八宿县| 安仁县| 赤水市| 嘉善县| 安阳市| 石嘴山市| 泗洪县| 蚌埠市| 天镇县| 文安县| 子洲县| 绿春县| 德庆县| 吴江市| 若羌县| 枣阳市| 沛县| 永宁县| 怀集县| 怀安县| 万盛区| 南涧| 兴山县|