国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

香港云服务器
服務(wù)器之家 - 編程語言 - PHP教程 - php設(shè)計模式之觀察者模式的應(yīng)用詳解

php設(shè)計模式之觀察者模式的應(yīng)用詳解

2020-03-26 14:42PHP教程網(wǎng) PHP教程

本篇文章是對php中的觀察者模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

觀察者模式:定義對象間一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動更新。
觀察者類:
1.抽象主題角色:主題角色將所有對觀察者對象的引用保存在一個集合中,每個主題可以任意多個觀察者。抽象主題提供了增加和刪除觀察者對象的接口。
2.抽象觀察者角色:為所有的具體觀察者定義一個接口,在觀察的主題發(fā)生改變時更新自己
3.具體主題角色:存儲相關(guān)狀態(tài)到具體觀察者對象,當(dāng)具體主題的內(nèi)部狀態(tài)發(fā)生改變時,給所有登記過的觀察者發(fā)出通知。具體主題角色通常用一個具體子類實(shí)現(xiàn)。
4.具體觀察者角色:存儲一個具體主題對象,存儲相關(guān)狀態(tài),實(shí)現(xiàn)抽象觀察者角色所要求的更新接口,以使得其自身狀態(tài)和主題的狀態(tài)保持一致
作用:
1. 觀察者模式的耦合度較小
2.支持廣播通信

復(fù)制代碼 代碼如下:


<?php
//抽象主題
interface Subject{
     public function attach($observer);
     public function detach($observer);
     public function notifyObservers();
}
//具體主題
class ConcreateSubject implements Subject{
     private $_observers;
     public function __construct(){
          $this->_observers = array();
     }

     public function attach($observer){
          return array_push($this->_observers,$observer);
     }

     public function detach($observer){
          $index = array_search($observer,$this->_observers);
          if($index === false || !array_key_exists($index,$this->_observers)){
               return false;
          }
          unset($this->_observer[$index]);
          return true;
     }

     public function notifyObservers(){
          if(!is_array($this->_observers)){
               return false;
          }
          foreach($this->_observers as $observer){
               $observer->update();
          }
          return true;
     }
}

//抽象觀察者
interface Observer{
     public function update();
}
//具體觀察者
class ConcreteObserver implement Observer{
     private $_name;
     public function __construct($name){
          $this->_name = $name;
     }

     public function update(){
          echo 'Observer',$this->_name.'has notified<br/>';
     }
}

//客戶端
class Client{
     public static function main(){
            $subject = new ConcreteSubject();
            //新增第一個觀察者
            $observer1 = new ConcreteObserver('Martin');
            $subject->attach($observer1);
            //通知
            $subject->notifyObservers();

            //新增第二個觀察者
            $observer2 = new ConcreteObserver('jaky');
            $subject->attach($observer2);
            //通知
            $subject->notifyObservers();

            //刪除觀察者1
            $subject->deatch($observer1);
            //通知
            $subject->notifyObservers();
     }
}

Client::main();
?>

延伸 · 閱讀

精彩推薦
579
主站蜘蛛池模板: 欧美黑人性生活 | 日本1区| 超碰c| 一区二区不卡视频 | 亚洲精品网址 | 亚洲免费视频一区 | 成人精品 | 国产精品亚洲一区二区三区在线 | 精品久久av | 粉嫩欧美一区二区三区高清影视 | 综合色网站 | a国产精品 | 在线观看欧美一区 | 欧美日本韩国一区二区三区 | 色日韩 | 亚洲午夜免费 | 黄色短视频在线观看 | 欧美性一区二区三区 | 黄久久久| 日韩中文字幕在线播放 | 久草免费在线 | 婷婷久久综合 | 狠狠躁夜夜躁人人爽天天高潮 | 亚洲精品一区在线 | 天堂资源 | 久久精品视频免费 | 狠狠操综合网 | 久久伊人亚洲 | 久久综合伊人77777蜜臀 | 色综合久久久久 | 日韩免费看 | 久久久国产精品一区 | 精品一二三区 | 久久久国产精品视频 | 久久99精品久久久久久久青青日本 | 日韩成人一区二区 | 日韩中文字幕在线观看 | 国产精品福利视频 | 国产在线成人 | 久久伊人成人网 | 成人免费黄色毛片 |