PHP设计模式之观察者模式
2021-01-28 23:14
标签:ext 观察者 php upd 业务 继承 xtend server gen 当某个事件发生后,需要执行的逻辑增多时,可以以松耦合的方式去增删逻辑。也就是观察者接口部分,只需要定义一个实现了观察者接口的类,实现复杂的逻辑,然后在接口类增加新接口业务接口。这样实现了低耦合。 PHP设计模式之观察者模式 标签:ext 观察者 php upd 业务 继承 xtend server gen 原文地址:https://www.cnblogs.com/cutcop/p/13207909.html
2:场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理的逻辑。当更新的逻辑增多之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件的主体代码。
3:观察者模式实现了低耦合,非侵入式的通知与更新机制。 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
";
}
}
//继承观察者接口
class Observer1 implements Observer{
function update(){
echo "逻辑1
";
}
}
//继承观察者接口
class Observer2 implements Observer{
function update(){
echo "逻辑2
";
}
}
$event = new Event();
$event->addObserver(new Observer1());
$event->addObserver(new Observer2());
$event->triger();
$event->notify();
上一篇:php本地环境快速搭建
下一篇:掌握HTTP原理