• 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();
  • 相关阅读:
    将Excel文件.xls导入SQL Server 2005
    linux mount命令
    python write file
    vim visual模式 复制
    chef简介
    录音整理文字工具otranscribe简介
    ftp put get 的使用方法
    yum lock 解决方法
    phalcon builder get raw sql
    centos7安装VirtualBox
  • 原文地址:https://www.cnblogs.com/itfenqing/p/6821798.html
Copyright © 2020-2023  润新知