为什么我们需要接口来实现java中的事件监听器?

时间:2013-10-06 19:40:33

标签: java interface event-listener

我对Java有这样的疑问:当人们编写事件监听器时,他们实现了一个接口,他们在接口中定义了一个特定的函数来实现特定的任务。我怀疑的是,我们可以使用适当的名称来定义函数,而不是实现接口。

此外,接口如何帮助实现事件监听器?

2 个答案:

答案 0 :(得分:0)

因为许多不同的类想要监听同一个事件而Java不允许多重继承。

答案 1 :(得分:0)

Listener接口为您提供了很多实现自由。

这样您就不必在特定类中实现特定功能。虽然实现接口看起来是相同的,但事实并非如此。侦听器的功能仍然只是单个函数,但该函数通常在轻量级对象中。但是,如果需要,您可以在侦听器中实现许多程序机制。

此外,您可以在运行时更改侦听器。您无法更改覆盖功能。

在这里使用composition (over inheritance)有很多充分的理由。

如果您真的想了解这一点,我建议您查看“Heads first: Design Patterns”。亚马逊的“look inside”功能包含完整的第1章,它大大解释了这种模式。