PHP5+標準函數庫觀察者之實現_PHP教程

來源:互聯網
上載者:User

PHP5+標準函數庫觀察者之實現


PHP的觀察者設計模式實現相對簡單,但是PHP5+版本中已經有標準庫類庫支援,我們只需簡單繼承並實現就可以了。

觀察者:實現標準介面類庫SplSubject。一個註冊方法:attach,一個取消註冊方法:detach。一個通知方法:nofity。

observers =array(); } public function attach(SplObserver $observer){$this->observers[] = $observer; } public function detach(SplObserver $observer){if($idx = array_search($observer, $this->observers,true)) {unset($this->observers[$idx]);} }     /** * * Notify observers one by one (main entry) * * @param none * @return none */ public function notify(){foreach($this->observers as $observer){$observer->update($this);} } public function setValue($value){$this->value = $value;//$this->notify(); } public function getValue(){ return $this->value; }}

被觀察者:實現標準介面類庫SplObserver。一個update方法。

getValue(); }}
getValue(); }}


測試調用(同目錄下):

attach(new TSPLObserver());$observer1 = new TSPLObserver1();$subject->attach($observer1);//$subject->attach(new TSPLObserver2());//$subject->detach($observer1);$subject->notify();exit();

輸出:

>php basic.php
The new state of subject

The new state of subject one

http://www.bkjia.com/PHPjc/875469.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/875469.htmlTechArticlePHP5+標準函數庫觀察者之實現 PHP的觀察者設計模式實現相對簡單,但是PHP5版本中已經有標準庫類庫支援,我們只需簡單繼承並實現就可以了...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.