82——java监听者模式
2016-03-06 14:43
281 查看
1.代码结构如下图:
其中Watched.java是被监听者,也就是事件源的一个接口;Watcher.java是监听者的一个借口。 ConcreateWatched.java,是一个具体的被监听对象,ConcreateWatcher,是一个具体的监听者。Test.java是一个测试用例。
其中Watched.java是被监听者,也就是事件源的一个接口;Watcher.java是监听者的一个借口。 ConcreateWatched.java,是一个具体的被监听对象,ConcreateWatcher,是一个具体的监听者。Test.java是一个测试用例。
//Watched.java package com.lafang.observer; public interface Watched//被观察者 { public void addWatcher (Watcher watcher); public void removeWatcher (Watcher watcher); public void notifyWatcher (String str); }
//Watcher.java package com.lafang.observer; public interface Watcher { public void update(String str); }
//ConcrateWatched.java package 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.java package com.lafang.observer; public class ConcrateWatcher implements Watcher { @Override public void update(String str) { // TODO Auto-generated method stub System.out.println(str); } }
//Test.java package 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"); } }
相关文章推荐
- java Util
- JavaWeb Servlet
- 2016蓝桥杯假期任务之《周期字串》(90%)
- 谈谈对Spring 控制反转(IOC)及依赖注入(DI)的理解
- java导出生成word的简单方法
- java.text.SimpleDateFormat多线程下的问题
- 20145127 《Java程序设计》第一周学习总结
- 深入理解Java的接口和抽象类
- java学习笔记(7)基本概念之IO
- SpringAop
- Java文件读写操作
- 理解spring
- java学习笔记(3)基本概念之抽象类和接口
- java学习笔记(2)基本概念之面向对象大纲
- java学习笔记(1)基本概念之成员
- Java虚拟机工作过程学习总结
- spring切面编程
- leetcode:Spiral Matrix II 【Java】
- java中的局部变量与成员变量
- Java的集合详细总结