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开发中比较常见的应用就能理解了

  • 相关阅读:
    android systembar tabletUI
    linux mv
    修改framework/base下面的api要注意要修改的地方
    git 从远程主服务器当中创建新分支
    修改android framework 添加service
    DUILIB 界面基本知识
    Duilib vlc c++ 字符编码
    android 应用APK使用系统APK
    linux 查找文件内容及文件
    修改android 开机动画
  • 原文地址:https://www.cnblogs.com/fancing/p/6394200.html
Copyright © 2011-2022 走看看