首页 > 其他 > 详细

观察者模式-订报纸,语音呼叫系统实例

时间:2015-12-18 14:46:03      阅读:153      评论:0      收藏:0      [点我收藏+]
<?php
/**
 * 观察者模式
 */

/**
 * 专门负责观察的类--主呼叫系统
 * 1、记录要提醒的对象的名字
 * 2、循环调用记录的对象们的一个同名的方法,这个方法具体做什么事情它们自己去决定
 */
class Paper
{ 
    private $_observers = array();
    public function register($sub)/*录入要提醒的人的名单*/
    { 
        $this->_observers[] = $sub;
    }
    public function trigger()/*统一提醒功能*/
    {  
        if(!empty($this->_observers))
        {
            foreach($this->_observers as $observer)
            {
                $observer->update();//记录的对象们的一个同名的方法,‘同名’用接口来规范
            }
        }
    }
}
 
/**
 * 观察者们,必须要实现的接口
 */
interface Observerable
{
    public function update();
}
 
class Subscriber1 implements Observerable
{
    public function update()
    {
        echo ‘我是1号,主呼叫系统在call我,我该做点什么事情了^_^\n‘;
    }
}

class Subscriber2 implements Observerable
{
    public function update()
    {
        echo ‘我是2号,主呼叫系统在call我,我该做点什么事情了^_^\n‘;
    }
}

class Subscriber3 implements Observerable
{
    public function update()
    {
        echo ‘我是3号,主呼叫系统在call我,我该做点什么事情了^_^\n‘;
    }
}

 
/*测试*/
$paper = new Paper();//呼叫系统
$paper->register(new Subscriber1());//注册观察者
$paper->register(new Subscriber2());
$paper->register(new Subscriber3());
$paper->trigger();//呼叫系统通知各个观察者,这个动作可以由外界的某件事情来触发,比如到了推送报纸的时间

 

观察者模式-订报纸,语音呼叫系统实例

原文:http://www.cnblogs.com/jiufen/p/5056966.html

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