PHP设计模式-观察者
admin
2023-06-22 14:22:25
0

PHP设计模式-观察者

   

   一个对象状态发生改变后,会影响到其他几个对象的改变,这时候可以用观察者模式。一个对象通过添加一个attach方法允许观察者注册自己,使本身变得可观察。当被观察的对象更改时,它会将消息发送到已注册的观察者。观察者使用该信息执行的操作与被观察的对象无关。观察者模式是一种事件系统,意味着这一模式允许某些类通过观察被观察类的状态变化,做出相应的动作。

   

  观察者模式UML图

PHP设计模式-观察者

  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{
  
          }  
      }
  }
  
  //实施观察
  $user= new user("sports");
  $user->attach(new secrity());
  $user->attach(new ad());
  $user->login();
  
  ?>


上一篇:PHP hash算法

下一篇:Linux PHP LAMP

相关内容

热门资讯

凤凰晚报丨美国牡蛎养殖场,走出... 今日人物【美国牡蛎养殖场,走出一位特朗普“平替”】2026年5月,在美国缅因州波特兰举行的一场州民主...
胡锡进:记者暗访被打,我有这样... 一名女记者暗访助孕实验室遭粗暴对待,被拖拽骨折。警方已对这起故意伤害刑事立案调查。支持记协对该记者的...
福州一立体停车场闲置长草?当地... 澎湃新闻记者 王选辉在福建省福州市仓山区的金山文体中心旁,有一座立体停车库。近日有周边群众向澎湃新闻...
《微博AI内容生态报告》:金橙... 2026年5月28日,《微博AI内容生态报告》(以下简称“报告”)正式发布。本报告从微博平台视角出发...
把超级AI助理“戴”进日常 讯... (澳门,2026年5月28日)当下,人工智能正以全新软硬件形态重塑人机交互方式。5月28日,科大讯飞...
2026年演唱会拍清舞台手机推... 对于演唱会爱好者而言,最令人沮丧的莫过于花费重金抢到门票,却因为座位偏远,手机长焦无力,拍出的舞台画...
联通+联想携手 首款AI+eS... 2026年5月28日,中国联通与联想集团联合举办拯救者Y70新一代“AI+eSIM”游戏手机战略合作...
国家大基金领投DeepSeek... DeepSeek的模型迭代需要持续投入大规模训练算力,充足资金是支撑这一长周期投入的重要来源 文|《...
“武器系统成熟前不准造”,美国... 【文/观察者网 山猫】尽管最近传出了多个关于“特朗普”级战列舰项目似乎确实要开始着手实施的迹象,包括...
90后小伙徒步重走长征路,当事... “你相信人可以重生吗?肉体不可以,但我相信精神可以。”来自新疆的90后小伙王成于2025年10月10...