zoukankan      html  css  js  c++  java
  • php观察者模式

    <?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();
  • 相关阅读:
    特殊集合
    推箱子
    集合
    数组

    循环语句 练习题
    穷举与迭代
    循环语句
    练习题
    switch case
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6821798.html
Copyright © 2011-2022 走看看