激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php設計模式 Observer(觀察者模式)

php設計模式 Observer(觀察者模式)

2019-12-02 13:45PHP教程網 PHP教程

定義對象間的一種一對多的依賴關系,以便當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并自動刷新 能夠便利地創建查看目標對象狀態的對象,并且提供與核心對象非耦合的指定功能

代碼如下:


<?php 
/** 
* 觀察者模式 

* 定義對象間的一種一對多的依賴關系,以便當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知并自動刷新 
* 能夠便利地創建查看目標對象狀態的對象,并且提供與核心對象非耦合的指定功能 
* 插件系統 
*/ 
class Observerable 

private $_observers = array(); 

public function registerObserver($observer) 

$this->_observers[] = $observer; 


public function removeObserver($observer) 

$key = array_search($observer,$this->_observers); 
if(!($key === false)) 

unset($this->_observers[$key]); 



public function notifyObservers() 

foreach($this->_observers as $observer) 

if($observer instanceof Observer) $observer->update($this); 




interface Observer 

public function update($observer); 


interface DisplayElement 

public function display(); 


// -- 實例類定義 
class NewsObserverable extends Observerable 

private $_sports_news; 
public function setSportsNews($data) 

$this->_sports_news = $data; 
$this->notifyObservers(); 


public function getSportsNews() 

return $this->_sports_news; 


private $_local_news; 
public function setLocalNews($data) 

$this->_local_news = $data; 
$this->notifyObservers(); 


public function getLocalNews() 

return $this->_local_news; 



class SportsNews implements Observer,DisplayElement 

private $_data = null; 
public function update($observer) 

if($this->_data != $observer->getSportsNews()) 

$this->_data = $observer->getSportsNews(); 
$this->display(); 



public function display() 

echo $this->_data.date("Y-m-d H:i:s")."<br/>"; 



class LocalNews implements Observer,DisplayElement 

private $_data = null; 
public function update($observer) 

if($this->_data != $observer->getLocalNews()) 

$this->_data = $observer->getLocalNews(); 
$this->display(); 



public function display() 

echo $this->_data.date("Y-m-d H:i:s")."<br/>"; 



// -- 實例化 --- 

$objObserver = new NewsObserverable(); 
$local = new LocalNews(); 
$sports = new SportsNews(); 

$objObserver->registerObserver($local); 
$objObserver->registerObserver($sports); 

$objObserver->setSportsNews("sports news 1 "); 
$objObserver->setLocalNews("local news 1 "); 
$objObserver->removeObserver($sports); 
$objObserver->setLocalNews("local news 2 "); 
$objObserver->setSportsNews("sports news 2 "); 
$objObserver->removeObserver($local); 
$objObserver->setLocalNews("local news 3 "); 

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 美女黄网站免费观看 | 欧美成年人在线视频 | 午夜视频成人 | 国产色视频在线观看免费 | 精品久久久久久国产三级 | 一区二区免费 | 国人精品视频在线观看 | 精品成人国产在线观看男人呻吟 | 成人免费看片a | 亚洲国产精品一区二区久久 | 日韩视频一 | 午夜国产福利 | 久久亚色 | 日日摸夜夜添夜夜添牛牛 | 欧美精品激情视频 | 久久久免费电影 | 欧美性生交xxxxx久久久缅北 | 中国av免费观看 | av在线网站观看 | 黑人三级毛片 | 欧美成人综合视频 | 日本网站一区二区三区 | 粉嫩粉嫩一区二区三区在线播放 | 色就色 综合偷拍区91网 | 92精品国产自产在线 | 92看片淫黄大片欧美看国产片 | 国产成人精品一区在线播放 | 美女视频免费一区二区 | 精品一区二区中文字幕 | 欧美黄色看| 92自拍视频 | 日韩做爰视频免费 | 在线成人免费观看 | 亚洲一区在线不卡 | 久国久产久精永久网页 | 激情视频在线播放 | 亚洲精品久久久久久久久久久 | 免费毛片在线 | 国产1区2区在线 | japanese xxxxhd| 性大片性大片免费 |