本文实例讲述了Java设计模式之监听器模式。分享给大家供大家参考,具体如下:
监听器模式有三个要素——事件源,事件对象,监听器。
:顾名思义,事件发生的源头,比如点击的按钮,属于被监听的对象,
:这个经常和事件源混淆,它经常被用来包装事件源,切记,它毕竟是个事件,比如点击事件,和事件源的区别自己感受,木有栗子;
:这个是监听器模式的核心,定义事件发生后的动作,通常事件对象作为监听器中定义的函数入参。
下面举个简单的栗子:
故事背景是,小明是个不讲卫生的孩子,他妈妈很担心他的健康,规定必须饭前洗手。
定义一个熊孩子。熊孩子就是被监听的对象,是事件源,一切事件都是事件源发的出,这似乎是句废话。
公开课的孩子{ 私人字符串名称; 私人RemindListener RemindListener; 公共子(字符串名称){ this.name=名称; } 公共空间吃(){ 如果(零!=remindListener) { remindListener。提醒(新RemindWashingHandsEvent ()); } system . out。println(“孩子吃…”); } 公共空间addListener (RemindListener侦听器){ remindListener=侦听器; } } >之前接下来是看看事件对象,事件对象正如上面所述,包装了事件源。我们在这里定义一个饭前洗手事件。
公开课RemindWashingHandsEvent { 私人孩童; 公共RemindWashingHandsEvent(孩童){ 这一点。孩子=; } } >之前事件对象定义了事件的属性,状态。
紧接着是定义事件发生后,监听器的动作,在这里是提醒洗手。公开课RemindListener { 公共空间提醒(RemindWashingHandsEvent RemindWashingHandsEvent) { system . out。println(“听妈妈的话,吃饭前洗手…”); } } >之前注意,监听器主要封装了动作,仅此而已。
以上代码,只是为了说明监听器模式原理,代码通俗,不太优雅。
下面继承或实现java标准库,又随手写了一对代码,夜深了,有时间再解释。
公开课孩子{ 私人字符串名称; 私人Listliteners; 公共的孩子(字符串名称){ this.name=名称; 这一点。liteners=Lists.newArrayList (); } 公共空间吃(){ (监听器监听器:liteners) { 如果侦听器instanceof WashingHandsListener) { WashingHandsListener WashingHandsListener=(WashingHandsListener)侦听器; washingHandsListener。fireAfterEventInvoked(新WashingHandsEvent(这个“洗手")); } } System.out.println(“吃饭…”); } 公共空间addListener(监听器监听器){ liteners.add(听众); } } 公共类事件延伸EventObject {/* * *构造一个典型的事件。 * * @param源对象alt=" Java设计模式之监听器模式实例详解"> 更多的java相关内容感兴趣的读者可查看本站专题:《java数据结构与算法教程》、《java操作DOM节点技巧总结》,《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
Java设计模式之监听器模式实例详解