文件名称:JAVA监听器响应机制模拟
文件大小:3KB
文件格式:JAVA
更新时间:2014-12-05 05:35:48
java listener util 监听 监听器
最近一直在搞低耦合的代码设计,后来发现JAVA中的监听器效果很不错,就特地研究了一下监听流程,后来经过调试终于成功,供大家分享下: 响应代码: /** * 事件响应运行 * @author wangchen * */ class EventRun { public static void main(String[] args) { /** * 事件源定义 */ MyEventSource eventSoure1 = new MyEventSource(); System.out.println("创建事件源成功!"); /** * 事件源加载监听器 */ eventSoure1.AddListener(new MyListener() { @Override public void Listen(MyEvent e) { // TODO Auto-generated method stub System.out.println("【一】事件发生改变:改变代码\"" + ((MyEventSource)(e.GetEventSource())).getFlag() + "\""); } }); System.out.println("首次添加监听器成功!"); eventSoure1.AddListener(new MyListener() { @Override public void Listen(MyEvent e) { // TODO Auto-generated method stub System.out.println("【一】新的事件监听:改变代码不变\"" + ((MyEventSource)(e.GetEventSource())).getFlag() + "\""); } }); System.out.println("再次添加监听器成功!"); //事件发生改变 for (int i = 0; i < 10; i++) { eventSoure1.SetFlag(i); } System.out.println("创建新的事件源!"); MyEventSource eventSoure2 = new MyEventSource(); eventSoure2.AddListener(new MyListener() { @Override public void Listen(MyEvent e) { // TODO Auto-generated method stub System.out.println("【二】事件发生改变:改变代码\"" + ((MyEventSource)(e.GetEventSource())).getFlag() + "\""); } }); for (int i = 0; i < 10; i++) { eventSoure2.SetFlag(i); } eventSoure1.SetFlag(10); System.out.println("事件监听流程结束!"); } } 运行结果: 创建事件源成功! 首次添加监听器成功! 再次添加监听器成功! 【一】事件发生改变:改变代码"0" 【一】新的事件监听:改变代码不变"0" 【一】事件发生改变:改变代码"1" 【一】新的事件监听:改变代码不变"1" 【一】事件发生改变:改变代码"2" 【一】新的事件监听:改变代码不变"2" 【一】事件发生改变:改变代码"3" 【一】新的事件监听:改变代码不变"3" 【一】事件发生改变:改变代码"4" 【一】新的事件监听:改变代码不变"4" 【一】事件发生改变:改变代码"5" 【一】新的事件监听:改变代码不变"5" 【一】事件发生改变:改变代码"6" 【一】新的事件监听:改变代码不变"6" 【一】事件发生改变:改变代码"7" 【一】新的事件监听:改变代码不变"7" 【一】事件发生改变:改变代码"8" 【一】新的事件监听:改变代码不变"8" 【一】事件发生改变:改变代码"9" 【一】新的事件监听:改变代码不变"9" 创建新的事件源! 【二】事件发生改变:改变代码"0" 【二】事件发生改变:改变代码"1" 【二】事件发生改变:改变代码"2" 【二】事件发生改变:改变代码"3" 【二】事件发生改变:改变代码"4" 【二】事件发生改变:改变代码"5" 【二】事件发生改变:改变代码"6" 【二】事件发生改变:改变代码"7" 【二】事件发生改变:改变代码"8" 【二】事件发生改变:改变代码"9" 【一】事件发生改变:改变代码"10" 【一】新的事件监听:改变代码不变"10" 事件监听流程结束!