Java设计模式之监听器模式实例详解

  

本文实例讲述了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设计模式之监听器模式实例详解