• PHP设计模式观察者模式


    观察者模式(Observer Pattern)

    观察者模式属于行为模式,是定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。它完美的将观察者对象和被观察者对象分离。可以在独立的对象(主体)中维护一个对主体感兴趣的依赖项(观察器)列表。让所有观察器各自实现公共的 Observer 接口,以取消主体和依赖性对象之间的直接依赖关系。

     

    <?php
    
    interface IObserver {
        function onChanged($sender, $args);
    }
    interface IObservable {
        function addObserver($observer);
    }
    class UserList implements IObservable {
        private $_observers = array ();
        public function addCustomer($name) {
            foreach ( $this->_observers as $obs )
                $obs->onChanged ( $this, $name );
        }
        public function addObserver($observer) {
            $this->_observers [] = $observer;
        }
    }
    class UserListLogger implements IObserver {
        public function onChanged($sender, $args) {
            echo ("'$args' added to user list\n");
        }
    }
    $ul = new UserList ();
    $ul->addObserver ( new UserListLogger () );
    $ul->addCustomer ( "Jack" );
    
    ?>

     

    观察者模式的优缺点:

    优点:

    1. 支持松耦合,减少依赖性

    2. 观察器可观察

    缺点:

    1. 性能降低

    2. 内存泄漏

    3. 隐藏的依赖项

    4. 测试/调试困难

     

  • 相关阅读:
    Delphi制作带图标的弹出式选单 DELPHI
    在DBGrid中实现Copy、Paste功能 DELPHI
    使用stringgrid的例子 DELPHI
    取得某一dll所有输出函数名 DELPHI
    HDOJ 2512 一卡通大冒险
    POJ 2533 Longest Ordered Subsequence
    UVA 10795 A Different Task
    HDOJ 1505 City Game
    HDOJ 1864 最大报销额
    HDOJ 1421 搬寝室
  • 原文地址:https://www.cnblogs.com/yangjinjin/p/2887501.html
Copyright © 2020-2023  润新知