zoukankan      html  css  js  c++  java
  • php设计模式 -- 观察者模式

    观察者模式(Observer),当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新。

    【观察者模式的优点和缺点】

    观察者模式的优点:

    1.观察者和主题之间的耦合度较小;
    2.支持广播通信;

    观察者模式的缺点:

    由于观察者并不知道其它观察者的存在,它可能对改变目标的最终代价一无所知。这可能会引起意外的更新。

    【观察者模式适用场景】

    当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。
    当对一个对象的改变需要同时改变其它对象,而不知道具体有多少个对象待改变。
    当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换句话说,你不希望这些对象是紧密耦合的。

    观察者模式在PHP中的应用场合:在web开发中观察者应用的方面很多
    典型的:用户注册(验证邮件,用户信息激活),购物网站下单时邮件/短信通知等

    代码实例

    SplSubject接口 被观察的对象

    interface SplSubject
    {
        public function attach(SplObserver $observer);
        public function detach(SplObserver $observer);
        public function notify();
    }

    SplObserver 接口,它代表着充当观察者的对象

    interface SplObserver
    {   
        public function update(SplSubject $subject);
    }
  • 相关阅读:
    [转][html5]网页横屏
    [转][EasyUI]扩展 DateBox
    [转][C#]枚举的遍历Enum
    [转][C#]单例模式之懒加载
    [C#][Quartz]添加监听器
    [C#][Quartz]帮助类
    [转]Win 10 的 Win 按键没反应
    转来的--轻松自动化---selenium-webdriver(python) (七)---定位iframe——转来的
    安装charles
    遇到的问题汇总
  • 原文地址:https://www.cnblogs.com/mmmzh/p/10103347.html
Copyright © 2011-2022 走看看