Java中的事件侦听器和处理程序之间有什么区别?
一般来说,Java有事件的侦听器和处理程序。
我的意思是我不知不觉地使用它们,只是API中可用的任何一个。
我的问题是,在什么情况下我们使用侦听器,在什么情况下我们对事件使用处理程序?
它们之间有什么区别?特性??
我已经搜索了原因,但我找不到Java的正确解释。
一般来说,Java有事件的侦听器和处理程序。
我的意思是我不知不觉地使用它们,只是API中可用的任何一个。
我的问题是,在什么情况下我们使用侦听器,在什么情况下我们对事件使用处理程序?
它们之间有什么区别?特性??
我已经搜索了原因,但我找不到Java的正确解释。
侦听器和处理程序之间没有正式定义的区别。有些人可能会争辩说它们是可以互换的。然而,对我来说,它们的含义略有不同。
侦听器是订阅来自源的事件的对象。参见观察者模式。通常,您可以让许多侦听器订阅每种类型的事件,并通过方法添加它们。addXyzListener
例:Java API 中的 MouseListener
。
处理程序是负责处理某些事件的对象。典型的方案是为特定事件/任务提供处理程序作为构造函数的参数,或通过方法设置处理程序。换句话说,对于每种类型的事件,通常都有一个处理程序。setXyzHandler
例:Java API 中的 MemoryHandler
。
最基本的区别是关联
一般来说,只有一个中央处理程序管理器来管理所有事件,而在监听器的情况下,每个想要监听的实体都必须管理自己的监听器集合。