码迷,mamicode.com
首页 > Web开发 > 详细

php观察者模式

时间:2017-05-07 19:57:26      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:function   private   notify   改变   []   调用   this   主题   nts   

<?php

//定义接口,观察者统一的方法,便于subject调用通知
interface Observerable
{
    public function update();
}

//定义观察者1
class Observer1 implements Observerable
{
    public function update()
    {
        echo "我是观察者1";
    }

}

//定义观察者2
class Observer2 implements Observerable
{
    public function update()
    {
        echo "我是观察者2";
    }

}

// 主题,被观察的目标
class Subject
{
    private $observer_list = array();

    // 注册观察者
    public function reg_observer($observer)
    {
        if(!in_array($observer,$this->observer_list)) {
            $this->observer_list[] = $observer;
        }
    }

    // 向观察者发送消息,告诉它主题有改变
    public function notify()
    {
        if(!empty($this->observer_list)) {
            foreach($this->observer_list as $ob) {
                $ob->update();
            }
        }
    }
}

$ob1 = new Observer1();
$ob2 = new Observer2();
$subj = new Subject();
// 注册观察者
$subj->reg_observer($ob1);
$subj->reg_observer($ob2);
// 向观察者推送消息
$subj->notify();

 

php观察者模式

标签:function   private   notify   改变   []   调用   this   主题   nts   

原文地址:http://www.cnblogs.com/itfenqing/p/6821798.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!