php设计模式之观察者模式
来源:互联网 发布:nginx常用模块 编辑:程序博客网 时间:2024/04/30 04:29
观察者模式(有时又被称为发布-订阅模式)。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。
UML类图:
重要角色:
抽象通知者角色(INotifier):定义了通知的接口规则。
具体通知者角色(Boss):实现抽象通知者的接口,接到状态改变立即向观察者下发通知。
抽象观察者角色(IObserver):定义接到通知后所做的操作(Update)接口规则。
具体观察者角色(JingDong):实现具体操作方法。
核心代码:
调用客户端代码:
优点:
1、一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这些方面封装在独立的对象中使它们可以各自独立地改变和复用。
2、一个对象的改变将导致其他一个或多个对象也发生改变,而不知道具体有多少对象将发生改变,可以降低对象之间的耦合度。
3、一个对象必须通知其他对象,而并不知道这些对象是谁。需要在系统中创建一个触发链,A对象的行为将影响B对象,B对象的行为将影响C对象……,可以使用观察者模式创建一种链式触发机制。
阅读全文
0 0
- Php设计模式之观察者模式
- PHP 设计模式之观察者模式
- PHP 设计模式之观察者模式
- php设计模式之观察者模式
- php中的设计模式之--观察者模式
- PHP 设计模式之观察者模式
- php设计模式之观察者模式
- php设计模式之观察者模式
- PHP 设计模式之观察者模式
- PHP 设计模式之观察者模式
- php设计模式之观察者模式
- php设计模式之观察者模式
- PHP 设计模式之观察者模式
- PHP 设计模式之观察者模式
- php八大设计模式之观察者模式
- php 设计模式之观察者模式
- php设计模式之观察者模式
- PHP设计模式之观察者模式
- 基于Unity3D的并行渲染模型的开发教程(四):Vuforia的开发
- Leetcode(13)
- 论HashMap、Hashtable、TreeMap、LinkedHashMap的内部排序
- 把"Essencial C++"读薄(二)
- linux目录结构及常用命令
- php设计模式之观察者模式
- 从零开始学_JavaScript_系列(41)——对象的扩展(4)扩展运算符三个点...
- 多线程小结
- 解决nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated问题
- 复数的物理意义
- python3 连接mysql数据库
- Linux C 中的一些基础命令
- 作为一位程序员必须掌握的技术
- Spring注入Date类型的属性,自定义Date属性编辑器