《PHP應用:php中的觀察者模式簡單實例》要點:
本文介紹了PHP應用:php中的觀察者模式簡單實例,希望對您有用。如果有疑問,可以聯系我們。
PHP實例觀察者模式是設計模式中比較常見的一個模式,包括兩個或者更多的互相交互的類.這一模式允許某個類觀察另外一個類的狀態,當被觀察類的狀態發生變化時候,觀察者會進行得到通知進而更新相應狀態.
PHP實例php的SPL尺度類庫提供了SplSubject和SplObserver接口來實現,被觀察的類叫subject,負責觀察的類叫observer.這一模式是SplSubject類維護了一個特定狀態,
PHP實例當這個狀態發生變化時候,它就會調用notify辦法.調用notify辦法時,所有之前使用attach辦法注冊的SplObserver實例的update辦法都會調用,Demo如下:
代碼以下:
class DemoSubject implements SplSubject{
??? private $observers, $value;
?
??? public function __construct(){
??????? $this->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]);
??????? }
??? }
?
??? 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;
??? }
}
?
class DemoObserver implements SplObserver{
??? public function update(SplSubject $subject){
??????? echo 'The new value is '. $subject->getValue();
??? }
}
?
$subject = new DemoSubject();
$observer = new DemoObserver();
$subject->attach($observer);
$subject->setValue(5);
維易PHP培訓學院每天發布《PHP應用:php中的觀察者模式簡單實例》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/12606.html