zoukankan      html  css  js  c++  java
  • 大话设计模式之PHP篇

    定义
    观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生改变时,会通知所有观察者对象,使他们能够自动更新自己。

    <?php
    /*主题类或称为通知类*/
    class Subject {
        private $_observers = array();
        
        /*注册观察者*/
        public function register($obs) {
            $this->_observers[] = $obs;
        }
        
        /*触发器,更新通知*/
        public function trigger() {
            if(!empty($this->_observers)) {
                foreach($this->_observers as $observer){
                    $observer->update();
                }
            }
        }
    }
    
    /*定义观察者接口,update必须实现*/
    interface Observer {
        public function update();
    }
    
    class One_Observer implements Observer {
        public function update() {
            echo 'One Is Called';
        }
    }
    
    class Two_Observer implements Observer {
        public function update() {
            echo 'Two Is Called';
        }
    }
    
    /*客户端实现*/
    $sub = new Subject;
    $sub->register(new One_Observer);
    $sub->trigger();
    $sub->register(new Two_Observer);
    $sub->trigger();

    观察者模式的关键对象是主题类Subject和观察者类Observer,一个Subject可以有任意数目的依赖他的观察者Observer,一旦Subject的状态发生了变化,所有的Observer都可以得到通知。Subject发出通知时并不需要知道谁是他的观察者,而任何一个观察者也不需要知道其他观察者的存在。
    ......真是又晦又涩...难懂的解释
    待想出个WEB开发中比较常见的应用就能理解了

  • 相关阅读:
    ios学习Day3xiawu
    ios学习Day3
    linux系统设置回收站
    Linux sort命令的注意点
    markdown文件管理
    PG创建只读用户
    PG游标引用实例
    小狼毫输入法配置双拼输入
    日期相关
    PG数组使用
  • 原文地址:https://www.cnblogs.com/fancing/p/6394200.html
Copyright © 2011-2022 走看看