82——java监听者模式
来源:互联网 发布:c#怎么连接数据库 编辑:程序博客网 时间:2024/06/08 08:53
1.代码结构如下图:
其中Watched.java是被监听者,也就是事件源的一个接口;Watcher.java是监听者的一个借口。 ConcreateWatched.java,是一个具体的被监听对象,ConcreateWatcher,是一个具体的监听者。Test.java是一个测试用例。
//Watched.javapackage com.lafang.observer;public interface Watched//被观察者{ public void addWatcher (Watcher watcher); public void removeWatcher (Watcher watcher); public void notifyWatcher (String str);}
//Watcher.javapackage com.lafang.observer;public interface Watcher{ public void update(String str);}
//ConcrateWatched.javapackage com.lafang.observer;import java.util.ArrayList;import java.util.List;public class ConcrateWatched implements Watched{ private List<Watcher> list = new ArrayList<Watcher>(); @Override public void addWatcher(Watcher watcher) { // TODO Auto-generated method stub list.add(watcher); } @Override public void removeWatcher(Watcher watcher) { // TODO Auto-generated method stub list.remove(watcher); } @Override public void notifyWatcher(String str) { // TODO Auto-generated method stub for(Watcher watcher : list) { watcher.update(str); } }}
//ConcrateWatcher.javapackage com.lafang.observer;public class ConcrateWatcher implements Watcher{ @Override public void update(String str) { // TODO Auto-generated method stub System.out.println(str); }}
//Test.javapackage com.lafang.observer;public class Test{ public static void main(String[] args) { Watched girl = new ConcrateWatched();//相当于按钮 Watcher watcher1 = new ConcrateWatcher(); Watcher watcher2 = new ConcrateWatcher(); Watcher watcher3 = new ConcrateWatcher();//相当于监听器 girl.addWatcher(watcher1); girl.addWatcher(watcher2); girl.addWatcher(watcher3); girl.notifyWatcher("Happy"); girl.removeWatcher(watcher2); girl.notifyWatcher("sad"); }}
0 0
- 82——java监听者模式
- 监听者—观察者模式
- java中的监听者模式
- Java设计模式——观察者模式(事件监听)
- java中的监听机制——观察者设计模式详解
- 设计模式——观察者监听者模式
- 设计模式——观察者监听者模式
- Java监听模式
- 监听者模式
- 监听者模式
- 监听者模式
- 监听者模式示例
- java--代理模式原理2(动态代理+监听者)
- Android监听——回调模式与观察者模式
- ios线程监听者模式
- ios线程监听者模式
- 监听者模式理解(Swing)
- [JAVA]Listener监听模式的学习
- 一起看代码来玩玩QT之18 database(four 向QtableView 添加代理view->setItemDelegate ,让代理作一些东西)
- java解析XML的四种方法的学习与比较
- nyoj120 poj1236
- 数据库SQL优化大总结之 百万级数据库优化方案
- 例题7-1 UVa725 Division(枚举)
- 82——java监听者模式
- (已加马赛克)10 行代码判定色*情*图片——Python 也可以系列之二
- mysql 中查出多条记录中的不同type值的pv字段的差值
- Neat Sayings | WPI
- 对Spring的IoC和DI最生动的解释
- 做一个合格的程序猿之Spring MVC+Spring + mybatis + Bootstrap 整合
- Linux安装ftp组件
- 用BP人工神经网络识别手写数字——《Python也可以》之三
- PAT_Basic 1008