设计模式之观察者模式
来源:互联网 发布:最后免费升级windows 编辑:程序博客网 时间:2024/05/28 15:15
观察者模式
概述
有时被称作发布/订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
解决问题
提供一种对象设计,让主题和观察者之间松耦合。
模式比喻
出版者+订阅者=观察者模式
(1)报社的业务是出版报纸。
(2)向某家报社订阅报纸
(3)不想看的话,取消订阅
类图
在这里WeatherData是主题,实现了Subject接口(声明了注册,移除及通知)。观察者是CurrentConditionDisplay和ForcastDisplay实现了Observer接口(表名它们是订阅者,可以进行注册及移除)。
JAVA中的使用
Observer接口和Observable类
实现Observer来表示订阅者,继承Observable来表示主题,当调用notifyObservers()时,必须调用setChanged()来表明状态已经被改变,否则无法使用notifyObservers方法。
阅读全文
0 0
- 设计模式之-观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- 设计模式之观察者模式
- Android NDK(1、简单入门和遇到的问题)
- 大炮打蚊子
- [LeetCode OJ]Partition Equal Subset Sum
- linux无损调整分区大小
- 面向对象编程
- 设计模式之观察者模式
- c/c++中extern关键字的编译原理和使用
- LeetCode135 Candy
- React Native使用fetch实现图片上传
- 【Effection C++】读书笔记 条款05~条款06
- 1112. Stucked Keyboard (20)[字符串处理]
- LeetCode136 Single Number
- OnTouchEvent方法实现View的拖动效果
- 高级I/O函数