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

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

/** *  观察者模式     观察者监听事件发生者(被观察者)     如果事件发生者发生改变的话要通知所有的观察者 */class Event extends EventGenerator{    /**     * eg:用户下单之后->商品库存减1->通知商家有新订单->通知快递小哥有新快递->通知客户订单已经生效     */    function tirgger()    {        echo "用户下单了
\n"; $this->notify(); }}// 事件产生者(被观察者)基类abstract class EventGenerator{ // 观察者数组 private $servers; // 增加观察者 function addObServer( Observer $server ) { $this->servers[] = $server; } // 通知观察者 function notify() { foreach ($this->servers as $server) { $server->update(); } }}// 观察者基类interface Observer{ function update();}// 商品class Goods implements Observer{ function update() { echo "库存减1
\n"; }}// 商家class Store implements Observer{ function update() { echo "有客户下单啦
\n"; }}// 快递class Express implements Observer{ function update() { echo "您有新订单啦,请及时配送
\n"; }}// 快递class User implements Observer{ function update() { echo "您的订单配送中,请耐心等待
\n"; }}$event = new Event();$event->addObServer( new Goods );$event->addObServer( new Store );$event->addObServer( new Express );$event->addObServer( new User );$event->tirgger();

 

转载于:https://www.cnblogs.com/JiangBigShrimp/p/11101332.html

你可能感兴趣的文章
python 正则表达式 提取网页中标签的中文
查看>>
2015武大校赛
查看>>
LA 2531 The K-league 最大流
查看>>
从零开始学习前端JAVASCRIPT — 6、JavaScript基础DOM
查看>>
Edit显示行号
查看>>
取得字符串中指定的字符str[]
查看>>
delphi TOpenDialog
查看>>
vue - 子路由-路由嵌套
查看>>
static关键字用法
查看>>
JVM调优总结
查看>>
关于编程的思考
查看>>
20款最佳jQuery应用程序和框架(上)
查看>>
git安装和使用
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
跟我一起读postgresql源码(六)——Executor(查询执行模块之——查询执行策略)
查看>>
scala的4中for循环,及while和do while循环
查看>>
vue.js windows下开发环境搭建
查看>>
数据表改变之后数据的迁移
查看>>
雷林鹏分享:Ruby 环境变量
查看>>