标签:ext 观察者 php upd 业务 继承 xtend server gen
EventGenerator.php //定义一个抽象类 <?php abstract class EventGenerator{ private $observers = array(); function addObserver(Observer $observer){ $this->observers[]=$observer; } function notify(){ foreach ($this->observers as $observer){ $observer->update(); } } }
Observer.php //定义一个观察者接口 <?php interface Observer{ function update(); //这里就是在事件发生后要执行的逻辑 }
<?php //入口页 一个实现了EventGenerator抽象类的类,用于具体定义某个发生的事件 //继承抽象类 class Event extends EventGenerator{ function triger(){ echo "Event<br>"; } } //继承观察者接口 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();
当某个事件发生后,需要执行的逻辑增多时,可以以松耦合的方式去增删逻辑。也就是观察者接口部分,只需要定义一个实现了观察者接口的类,实现复杂的逻辑,然后在接口类增加新接口业务接口。这样实现了低耦合。
标签:ext 观察者 php upd 业务 继承 xtend server gen
原文地址:https://www.cnblogs.com/cutcop/p/13207909.html