zoukankan      html  css  js  c++  java
  • php 燕十八 观察者模式代码例子

    <?php
    class user implements SplSubject
    {
        public $lognum;
        public $hobby;
        protected $observers=null;
        public function __construct($hobby)
        {
            $this->lognum=rand(1,10);
            $this->hobby=$hobby;
            $this->observers=new SplObjectStorage();
        }
    
        public function login()
        {
            $this->notify();//操作session
        }
        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)
            {
                echo "这是第".$subject->lognum."次安全登录";
            }else
            {
                echo "这是第".$subject->lognum."次登录,危险";
            }
        }
    }
    
    class ad implements SPLObserver
    {
    
        public function update(SplSubject $subject)
        {
            if($subject->hobby=="sports")
            {
                echo "台球赛门票预定";
            }else
            {
                echo "还是好好学习吧";
            }
        }
    }
    
    $user=new user("study");
    $user->attach(new secrity());
    $user->attach(new ad());
    $user->login();
    ?>
  • 相关阅读:
    平稳随机过程通过线性系统
    频谱分析的作用
    数字图像处理中的4邻接,8邻接与m邻接
    网络存储实验基础
    灰度变换
    MATLAB数字图像处理基础
    用MATLAB对信号做频谱分析
    关于 oracle10g、oracle client和plsql devement 三者之间的关系
    技术栈呢
    Linux编程
  • 原文地址:https://www.cnblogs.com/lizhaoyao/p/5385715.html
Copyright © 2011-2022 走看看