真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP設(shè)計(jì)模式-觀察者

PHP設(shè)計(jì)模式-觀察者

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供淮安網(wǎng)站建設(shè)、淮安做網(wǎng)站、淮安網(wǎng)站設(shè)計(jì)、淮安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、淮安企業(yè)網(wǎng)站模板建站服務(wù),十年淮安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

   

   一個(gè)對(duì)象狀態(tài)發(fā)生改變后,會(huì)影響到其他幾個(gè)對(duì)象的改變,這時(shí)候可以用觀察者模式。一個(gè)對(duì)象通過(guò)添加一個(gè)attach方法允許觀察者注冊(cè)自己,使本身變得可觀察。當(dāng)被觀察的對(duì)象更改時(shí),它會(huì)將消息發(fā)送到已注冊(cè)的觀察者。觀察者使用該信息執(zhí)行的操作與被觀察的對(duì)象無(wú)關(guān)。觀察者模式是一種事件系統(tǒng),意味著這一模式允許某些類(lèi)通過(guò)觀察被觀察類(lèi)的狀態(tài)變化,做出相應(yīng)的動(dòng)作。

   

  觀察者模式UML圖

PHP設(shè)計(jì)模式-觀察者

  php5中提供了觀察者observer與被觀察者subject接口

   interface SplSubject  

    {  

    function attach(SplObserver $observer);  

    function detach(SplObserver $observer);  

    function notify();  

    }  

   interface SqlObserver  

    {  

    function update(SplSubject $subject);  

    }

  例子如下

lognum= rand(1,10);
      $this->hobby= $hobby;
      $this->observers=new SplObjectStorage();
  }
  public function login(){
    $this->notify();
  }
  
  public function attach(SPLObserver $observer){
    $this->observers->attach($observer);
  }
  
  public function detach(SPLObserver $observer){
      $this->observers->detach($observer);
  }
  
  public function notify(){
      $this->observers->rewind();
      while($this->observers->valid){
         $observer= $this->observers->current();
         $observer->update($this);
         $this->observers->next();
      }      
  }    
  }
   
  class secrity implements SPLObserver{
      
      public function update(SplSubject $subject){
          if($subject->lognum>=3){
              
          }else{
              
          }          
      }
  }
    
  class ad implements SPLObserver{
  
      public function update(SplSubject $subject){
          if($subject->hobby=="sports"){
  
          }else{
  
          }  
      }
  }
  
  //實(shí)施觀察
  $user= new user("sports");
  $user->attach(new secrity());
  $user->attach(new ad());
  $user->login();
  
  ?>

本文題目:PHP設(shè)計(jì)模式-觀察者
轉(zhuǎn)載源于:http://weahome.cn/article/psgpgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部