发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
观察者设计模式应该是比较简单的一个设计模式。
定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
简单理解就是: 当1个对象状态有所改变的时候,依赖于它的其他对象将会有所行为。
举例:时钟12点响起的时候,公司里的员工都出去吃饭了,老板准备开会了,学生下课了。
public class Test { public static void main(String[] args) { Clock clock = new Clock(); Employee employee = new Employee(); Student student = new Student(); Boss boss = new Boss(); clock.registerObserver(employee); clock.registerObserver(student); clock.registerObserver(boss); clock.clock12(); } }
output:
可以看出,只要时钟到了12点。各个观察者就会触发各自对应的行为。
其实jdk中已经为我们定义了一套观察者设计模式的api。
是Observable和Observer。
需要注意的几点是
Observable是一个类,而并非接口;
Observer接口大致一致,不过jdk提供的Observer带有参数;
Observable类调用notifyObservers的时候需要调用一下setChanged方法,它里面维护一个实例变量changed。
有兴趣的同学可以自行查看jdk源码。
来自: 昵称10504424 > 《工作》
0条评论
发表
请遵守用户 评论公约
Android设计模式系列(2)
这是一个最简单的观察者模式,目标对象能够添加和删除观察者,当自己某种状态或者行为发生改变时,可通过notify通知注册的观察者进行更...
JAVA设计模式之观察者模式 - Observer
JAVA设计模式之观察者模式 - Observer.如果你了解报社的订阅是怎么回事,其实就知道观察者是怎么回事了,只是名称不太一样:出版者改称...
观察者模式详解
观察者模式 Observer Pattern
观察者模式 Observer Pattern.// 特定的Subject主题有温度、湿度、压强三个数据 float humidity; float pressure; vector <Observer*...
观察者模式
观察者模式观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。...
JAVA设计模式之观察者模式
JAVA设计模式之观察者模式1、初步认识观察者模式的定义:抽象被观察者角色:也就是一个抽象主题,它把所有对观察者对象的引用保存在一个...
Observer设计模式
Observer设计模式Observer设计模式是为了定义对象间的一种一对多的依赖关系,以便于当一个对象的状态改变时,其他依赖于它的对象会被自动告知并更新。
MVC模式学习
MVC模式的关键是实现了视图和模型的分离。观察者模式中的主题就对应于MVC模式中Model(模型),观察者就对应于MVC模式中的View(视图)...
设计模式之:解剖观察者模式
为了便于理解,首先我举一个现实生活中的例子:在快乐男生比赛过程其实就是观察者的一个体现,可以这样说吉杰是一个被观察者,而杨二,包小柏,还有巫启贤就是3个观察者,被观察者操作(唱歌)时,观察...
微信扫码,在手机上查看选中内容