设计模式---观察者模式
来源:互联网 发布:itools 3 mac 破解版 编辑:程序博客网 时间:2024/05/17 07:13
观察者模式:
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。
//抽象观察者角色
public interface Watcher
{
public void update(String str);
}
//抽象主题角色,watched:被观察
public interface Watched
{
public void addWatcher(Watcher watcher);
public void removeWatcher(Watcher watcher);
public void notifyWatchers(String str);
}
public class ConcreteWatcherimplements Watcher
{
@Override
public void update(String str)
{
System.out.println(str);
}
}
import java.util.ArrayList;
import java.util.List;
public class ConcreteWatchedimplements Watched
{
// 存放观察者
private List<Watcher> list = new ArrayList<Watcher>();
@Override
public void addWatcher(Watcher watcher)
{
list.add(watcher);
}
@Override
public void removeWatcher(Watcher watcher)
{
list.remove(watcher);
}
@Override
public void notifyWatchers(String str)
{
// 自动调用实际上是主题进行调用的
for (Watcher watcher : list)
{
watcher.update(str);
}
}
}
public class Test
{
public static void main(String[] args)
{
Watched girl = new ConcreteWatched();
Watcher watcher1 = new ConcreteWatcher();
Watcher watcher2 = new ConcreteWatcher();
Watcher watcher3 = new ConcreteWatcher();
girl.addWatcher(watcher1);
girl.addWatcher(watcher2);
girl.addWatcher(watcher3);
girl.notifyWatchers("开心");
}
}
- 模式设计:观察者模式
- 设计模式-----观察者模式
- 设计模式-观察者模式
- 设计模式--观察者模式
- 设计模式:观察者模式
- 设计模式-----观察者模式
- 设计模式:观察者模式
- 设计模式-观察者模式
- 设计模式 观察者模式
- 设计模式-观察者模式
- 设计模式-【观察者模式】
- 设计模式-观察者模式
- 设计模式 -- 观察者模式
- 设计模式-观察者模式
- 【设计模式】观察者模式
- 设计模式- 观察者模式
- 设计模式- 观察者模式
- 设计模式--观察者模式
- Invenio 数字图书馆框架
- 设计模式---策略模式
- elasticsearch中ANSJ中文分词处理
- 记录一下我目前的知识体系
- 文件上传与下载--springmvc版本上传
- 设计模式---观察者模式
- 两个Fragment之间的跳转(例给Fragment加动画跳转)
- android5.0 手机中,缓存文件不能实时刷新问题,解决办法.
- 利用TensorFlow Object Detection API 训练自己的数据集
- js数据结构之优先队列和循环队列
- MySQL理解索引、添加索引的原则
- 使用浏览器,我有特别的技巧
- Spring(一)Spring IOC容器配置详解——基于xml文件形式
- 一元二元演示