首页 > Web开发 > 详细

php实现观察者模式

时间:2014-09-18 23:55:15      阅读:562      评论:0      收藏:0      [点我收藏+]
<meta charset=‘utf-8‘ />
<title>观察者模式</title>
<?php
    class Tongzhi implements SPLSubject
    {
        protected $subs = array();
        public $username = ‘我是被观察者‘;

        public function __construct(){
        }
        
        public function attach(SPLObserver $sub){
            $this->subs[] = $sub;
        }

        public function detach(SPLObserver $sub){
            $keys = array_keys($this->subs,$sub);
            $key = $keys[0];
            unset($this->subs[$key]);
        }

        public function notify(){
            foreach ($this->subs as $value) 
            {
                $value->update($this);
            }
        }
    }

    class Obs1 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.‘,我是观察者1<br />‘;
        }
    }

    class Obs2 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.‘,我是观察者2<br />‘;
        }
    }

    class Obs3 implements SPLObserver
    {
        public function update(SPLSubject $tz){
            echo $tz->username.‘,我是观察者3<br />‘;
        }
    }

    $tz = new Tongzhi;
    $tz->attach(new Obs1);
    $tz->attach(new Obs2);
    $tz->detach(new Obs2);
    $tz->attach(new Obs3);
    $tz->notify();
?>



php实现观察者模式

原文:http://my.oschina.net/u/946060/blog/315828

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!