Java:应用Observer接口实现Observer模式
2019独角兽企业重金招聘Python工程师标准>>>
最近在参与一个android项目的时候,看到里面用了Observer这东西,以前还不知道,搜罗了一下,发现一篇讲的简洁清晰的文章,搬来用一下,以后自己好看看: 在Java中通过Observable类和Observer接口实现了观察者模式。Observer对象是观察者,Observable对象是被观察者。
void addObserver(Observer o)
setChanged();
notifyObservers();
setChange()方法用来设置一个内部标志位注明数据发生了变化;notifyObservers()方法会去调用观察者对象列表中所有的Observer的update()方法,通知它们数据发生了变化。只有在setChange()被调用后,notifyObservers()才会去调用update()。
void update(Observable o, Object arg)
import java.util.Observable;public class NumObservable extends Observable {private int data = 0;public int getData() {return data;}public void setData(int i) {data = i;setChanged();notifyObservers();}
}
import java.util.Observable;
import java.util.Observer;public class NumObserver implements Observer{public void update(Observable o, Object arg) {NumObservable myObserable=(NumObservable) o;System.out.println("Data has changed to " +myObserable.getData());}
}
测试类SingleTest,在这里将观察者加入到被观察者的观察列表中。
public class SingleTest {public static void main(String[] args) {NumObservable number = new NumObservable();number.addObserver(new NumObserver());number.setData(1);number.setData(2);number.setData(3);}
}
结果:
Data has changed to 3 尊重劳动成果:http://zhangjunhd.blog.51cto.com/113473/68949/
转载于:https://my.oschina.net/javaTechLover/blog/341628
Java:应用Observer接口实现Observer模式相关推荐
- java observer_Java中的Observer接口实践Observer模式
Observer源码 Observer是一个interface,只有一个update方法,两个参数,参数1位被观察者,参数2为被观察者额外传递的参数. /** * A class can implem ...
- java获取jsp 组件,利用Observer模式解决组件间通信问题-JSP教程,Java技巧及代码
1. 问题的提出 以前做一个界面的时候常常会遇到这样的尴尬情况:希望保留各个独立的组件(类),但又希望它们之间能够相互通信.譬如windows中的explorer,我们希望鼠标点击左边是树型目录的一个 ...
- Java中使用Observer接口和Observable类实践Observer观察者模式
在Java中通过Observable类和Observer接口实现了观察者模式.实现Observer接口的对象是观察者,继承Observable的对象是被观察者. 1. 实现观察者模式 实现观察者模式非 ...
- JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...
- 《研磨设计模式》chap12 观察者模式observer(1)模式简介
场景:读者订杂志,订报纸,当有新的期刊和版本来了,读者怎么知道? 1. 模式介绍 public class Subject {//用来保存注册的观察者对象 private List<Observ ...
- 设计模式笔记 18. Observer 观察者模式(行为型模式)
18. Observer 观察者模式 2008-09-15 动机(Motivation) 在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系& ...
- Java 设计模式之观察者模式(Observer pattern)
观察者模式在软件编程中用的较多,我不善于表达我就用在网上看到的故事,和生活的例子说下基本思想 故事: 小雪是一个非常漂亮的女孩,漂亮的女孩总是有很多的追求者,而且追求者的队伍在不断的变动,随时有人进入 ...
- Java设计模式(16)中介模式(Mediator模式)
Mediator定义:用一个中介对象来封装一系列关于对象交互行为. 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉 ...
- Java设计模式(1)工厂模式(Factory模式)
工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因 ...
最新文章
- Linux主机下无报错安装Apache服务器
- 统计所有子串写到文件
- LeetCode-剑指 Offer 10- II. 青蛙跳台阶问题
- vue-cli 3.0配置webpack目录别名alias
- virsh 网络设置_KVM使用Network Filters进行虚拟机网络管理 | leon的博客
- Fedex Ship Manager Software安装
- LabVIEW: 无法执行该VI。
- wordpress api ajax,Woocommerce rest api - 在wordpress中通过ajax创建产品
- java 保存 设置_java的保存按钮怎么设置?
- Linux命令行截屏,Scrot:Linux 命令行截屏工具
- phonegap文件上传(java_php),Android应用开发之使用PhoneGap实现位置上报功能
- JavaScript高级知识点整理
- 结巴分词有前空格_结巴分词详细讲解
- 科普贴:示波器的组成
- 库卡机器人示教器截屏_库卡机器人示教器
- java pdf查看_Java检查PDF文件是否损坏
- 浅谈深度学习:了解RNN和构建并预测
- 2. linux默认的系统管理员账号是,2019.10第二周 王俊懿_Linux
- css文字超出宽度自动换行
- VIN码校验器:用于检查车架号是否符合国标
热门文章
- 两个有序链表序列的交集
- MySQL中通配类型各自作用_在Access数据库中。在查找操作中,通配符*、?与#各有什么作用?...
- 搭建配置cacti,采集信息监控
- Android 实现手写板技术
- linux下apache+openssl配置记录
- Arcengine实现创建网络数据集札记(二)
- C#时常需要调用C++DLL
- Ranger开源流水线docker化实践案例
- Intellij Idea插件利器推荐大全
- android 通知打开app,Android打开通知栏并回到主页的几种方式