博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
观察者模式
阅读量:5256 次
发布时间:2019-06-14

本文共 927 字,大约阅读时间需要 3 分钟。

定义:当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新,实现低耦合,非侵入式的通知与更新机制
场景:一个事件发生后,要执行一连串更新操作。传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的逻辑增加之后,代码会变得难以维护。这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代码
1085906-20161224221151026-1478205653.png
$event = new Event(); $event->addObserver(new Observer1()); $event->addObserver(new Observer2()); $event->trigger();
 
 
class Event extends \IMooc\EventGenerator {
function trigger() {
echo "Event
\n"; $this->notify(); } }
 
class Observer1 implements \IMooc\Observer {
function update($event_info = null) {
echo "逻辑1
\n"; } } class Observer2 implements \IMooc\Observer {
function update($event_info = null) {
echo "逻辑2
\n"; } }
 
observers[] = $observer; } function notify() {
foreach ($this->observers as $observer) {
$observer->update(); } } }
 

转载于:https://www.cnblogs.com/phonecom/p/c9af18ff116c167489f08c149cefd9e7.html

你可能感兴趣的文章
喜欢的话
查看>>
[jQuery]在WCF 4中如何用JSONP轻松实现跨域Ajax请求
查看>>
JMS消息
查看>>
16位整数,32位整数,64位整数
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
Jenkins里邮件插件触发器配置和Send to Developers到底是什么意思(转)
查看>>
angular/cli安装
查看>>
网页记账本开发三
查看>>
11gR1 Patchset 2 ~ 11.1.1.3.0 (SOA) features ..
查看>>
Hdu 1708 Fibonacci String
查看>>
java lock锁住特定对象
查看>>
JAX-WS 访问SSL 的WebService 老是HTTP transport error: Connection refused错误的解决办法。...
查看>>
面向对象与函数式的对比
查看>>
yii2实战教程之第一个Yii程序
查看>>
php上传文件及头像预览
查看>>
程序猿加班的不归路!
查看>>
【译】在Transformer中加入相对位置信息
查看>>
大四java实习生的一些经历
查看>>
python programming
查看>>
基础排序算法之快速排序(Quick Sort)
查看>>