小編給大家分享一下如何使用PHP實(shí)現(xiàn)觀察者模式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的烈山網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
觀察者模式為您提供了避免組件之間緊密耦合的另一種方法。該模式非常簡(jiǎn)單:一個(gè)對(duì)象通過添加一個(gè)方法(該方法允許另一個(gè)對(duì)象,即觀察者注冊(cè)自己)使本身變得可觀察。當(dāng)可觀察的對(duì)象更改時(shí),它會(huì)將消息發(fā)送到已注冊(cè)的觀察者。這些觀察者使用該信息執(zhí)行的操作與可觀察的對(duì)象無關(guān)。結(jié)果是對(duì)象可以相互對(duì)話,而不必了解原因。
一個(gè)簡(jiǎn)單示例是系統(tǒng)中的用戶列表。下面的代碼顯示一個(gè)用戶列表,添加用戶時(shí),它將發(fā)送出一條消息。添加用戶時(shí),通過發(fā)送消息的日志觀察者可以觀察此列表。
_observers as $obs) { $obs->onChange($this,$name); } } //注冊(cè)觀察者的方法 public function addObserver($observer) { $this->_observers[] = $observer; } } //定義用戶日志類,也可以是其他的一些操作,繼承觀察者 class UserListLogger implements IObserver { //實(shí)現(xiàn)觀察者的方法 public function onChange($sender,$args){ //這里可以實(shí)現(xiàn)當(dāng)觀察者檢測(cè)到觀察事件的時(shí)候定義的動(dòng)作 //比方說發(fā)送歡迎郵件之類的 echo "$args added to user list\n"; } } //實(shí)例化觀察者 $userListLogger = new UserListLogger(); //實(shí)例化被觀察者 $userList = new UserList(); //注冊(cè)觀察者 $userList->addObserver($userListLogger); //注冊(cè)用戶,觀察者發(fā)生動(dòng)作 $userList->addCustomer('jane');
以上是“如何使用PHP實(shí)現(xiàn)觀察者模式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!