您好,登錄后才能下訂單哦!
這篇文章主要介紹“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();
運行結果如下:
有添加觀察者這樣一個方法,那就有刪除觀察者的方法,因此我們還要添加一個刪除觀察者的方法,
function delObserver($observer) { //查找對應值在數組中的鍵 $key = array_search($observer,$this->observers); //根據鍵刪除值,并且數組重新索引 array_splice($this->observers, $key, 1); } }
//刪除
$xiaoming->delObserver( $xiaohua);
代碼如下:
到此,關于“PHP中觀察者模式的原理和應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。