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

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

1.概念

        定义一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。

2.UML图

3.代码

interface Subject { public void attach(Observer observer); public void detach(Observer observer); void notifyObservers(); } public class ConcreteSubject implements Subject {
private Vector observersVector = new Vector(); public void attach(Observer observer) { observersVector.addElement(observer); } public void detach(Observer observer){ observersVector.removeElement(observer); } public void notifyObservers(){ Enumeration enumeration = observersVector.clone()).elements(); while (enumeration.hasMoreElements()){ ((Observer)enumeration.nextElement()).update(); } } } public interface Observer { void update(); } public class ConcreteObserver1 implements Observer{ public void update() { System.out.println("Obsver1 execute"); } } public class ConcreteObserver2 implements Observer{ public void update() { System.out.println("Obsver2 execute"); } } public class Main { public static void main(String[] args) { ConcreteSubject concreteSubject = new ConcreteSubject (); ConcreteObserver1 observer1 = new ConcreteObserver1(); ConcreteObserver2 observer2 = new ConcreteObserver2(); generator.addObserver(observer1); generator.addObserver(observer2); concreteSubject.notifyObservers(); } }

4.应用场景

   当对一个对象的改变需要同时改变其它对象,依赖于它的对象都需要改变时。

 --------------------------------------------------------------------

PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。

--------------------------------------------------------------------

转载地址:http://kglko.baihongyu.com/

你可能感兴趣的文章
percona 5.7.11root初始密码设置
查看>>
Cognitive Security的异常检测技术
查看>>
Impress.js上手 - 抛开PPT、制作Web 3D幻灯片放映
查看>>
生活杂事--度过十一中秋
查看>>
Pyrex也许是一个好东西
查看>>
Java内部类总结
查看>>
WINFORM WPF字体颜色相互转换
查看>>
能力不是仅靠原始积累(三)
查看>>
实战:使用终端服务网关访问终端服务
查看>>
彻底学会使用epoll(一)——ET模式实现分析
查看>>
路由器的密码恢复
查看>>
【Android 基础】Android中全屏或者取消标题栏
查看>>
Xilinx 常用模块汇总(verilog)【03】
查看>>
脱离标准文档流(2)---定位
查看>>
IO流之字符流
查看>>
集合异常之List接口
查看>>
Softmax回归
查看>>
紫书 习题11-11 UVa 1644 (并查集)
查看>>
App工程结构搭建:几种常见Android代码架构分析
查看>>
使用openssl进行证书格式转换
查看>>