• php 八大设计模式-观察者模式


    定义:

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

    场景:

    一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码。

    优点:

    观察者模式实现了低耦合,非侵入式的通知与更新机制。

    abstract class EventGenerator {
        private $observers = array();
    
        public function addObserver(Observer $observer){
            $this->observers[]=$observer;
        }
    
        public function notify(){
            foreach ($this->observers as $observer){
                $observer->update();
            }
        }
    }
    
    class Event extends EventGenerator {
        public function triger(){
            echo "Event<br>";
        }
    }
    
    interface Observer{
        public function update();//这里就是在事件发生后要执行的逻辑
    }
    
    class Observer1 implements Observer {
        function update(){
            echo "逻辑1<br>";
        }
    }
    class Observer2 implements Observer{
        function update(){
            echo "逻辑2<br>";
        }
    }
    $event = new Event();
    $event->addObserver(new Observer1());
    $event->addObserver(new Observer2());
    $event->triger();
    $event->notify();

    运行结果:

  • 相关阅读:
    JqGrid常用示例
    jqGrid无刷新分页,添加行按钮
    C#两个实体之间相同属性的映射
    Log4Net日志记录
    C#压缩图片
    ASP.Net MVC4.0+无刷新分页
    世界各个国家中英文sql建表
    ASP.NET多语言
    分布式事务处理中的幂等性
    分布式事务前瞻-接口幂等性
  • 原文地址:https://www.cnblogs.com/fangdada/p/14869685.html
Copyright © 2020-2023  润新知