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

    定义:当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新,实现低耦合,非侵入式的通知与更新机制
    场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增加之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码


    $event = new Event();
    $event->addObserver(new Observer1());
    $event->addObserver(new Observer2());
    $event->trigger();

    class Event extends IMoocEventGenerator
    {
    function trigger()
    {
    echo "Event<br/> ";

    $this->notify();
    }
    }

    class Observer1 implements IMoocObserver
    {
    function update($event_info = null)
    {
    echo "逻辑1<br/> ";
    }
    }

    class Observer2 implements IMoocObserver
    {
    function update($event_info = null)
    {
    echo "逻辑2<br/> ";
    }
    }

    <?php
    namespace IMooc;

    abstract class EventGenerator
    {
    private $observers = array();

    function addObserver(Observer $observer)
    {
    $this->observers[] = $observer;
    }

    function notify()
    {
    foreach ($this->observers as $observer)
    {
    $observer->update();
    }
    }
    }

    <?php
    namespace IMooc;

    interface Observer
    {
    function update($event_info = null);
    }




  • 相关阅读:
    课堂测试-文本操作
    异常的总结
    动手动脑实验-异常
    从小工到专家-读后感3
    从小工到专家-读后感2
    从小工到专家-读后感1
    构建之法读书笔记(一)
    2.12日总结
    BaseAdapter的使用
    Activity之Bundle的使用
  • 原文地址:https://www.cnblogs.com/phonecom/p/c9af18ff116c167489f08c149cefd9e7.html
Copyright © 2011-2022 走看看