zoukankan      html  css  js  c++  java
  • 观察者模式(发布-订阅模式)

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

    //主题类
    abstract class ObjectEvent
    {

    private $_observers = array();

    public function register($sub){

    $this->_observers[] = $sub;

    }

    public function notify(){
    if(!empty($this->_observers)){

    foreach ($this->_observers as $observer){

    $observer->update();

    }

    }
    }



    }
    class Event extends ObjectEvent
    {

    public function trigger(){

    $this->notify();

    }


    }

    #观察者要实现的接口
    interface Observerable
    {
    public function update();

    }

    class Subscriber implements Observerable
    {
    public function update()
    {
    echo '输出结果<br>';
    }

    }

    $event = new Event();

    $event->register(new Subscriber());

    $event->notify();

    观察者模式的关键对象是主题和观察者,一个主题可以有任意数目的依赖它的观察者,一旦主题的状态发生了改变,所有的观察者都可以得到通知。主题发出通知时并不需要知道谁是它的观察者。也就是说,具体观察者是谁,它根本不需要知道。而任何
    一个具体观察者不知道也不需要知道其他观察者的存在。

    什么时候使用观察者模式呢?当一个对象的改变需要同时改变其他对象的时候,而且它不知道具体有多少对象有待改变时,应该考虑使用观察者模式
  • 相关阅读:
    GHOST CMS
    某小姑娘治疗案
    关于ssl证书的一些知识
    Hbuiler中常用的快捷键
    跌落损任胸胁案
    老年脑梗案
    Centos7安装完成后设定基本的网络配置
    Centos7下的文件压缩
    在centos7上用docker安装宝塔面板
    右手中指一侧麻木案
  • 原文地址:https://www.cnblogs.com/paulversion/p/8431374.html
Copyright © 2011-2022 走看看