2013-10-06 59 views
-1

我对Java有这样的疑问:当人们正在编写事件监听器时,他们实现了一个接口,并且他们在接口中定义了一个特定的函数来实现特定的任务。我怀疑是不是实现一个接口,我们可以用一个合适的名称来定义函数。为什么我们需要接口来实现java中的事件监听器?

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

+1

如果您有多个侦听器,那么您肯定会希望每个侦听器都具有不同的功能。如果您使用的是Java 8,则可以使用'default'方法/实现的'interface',这意味着您不必覆盖它。 –

+0

要成功侦听,您需要一个*回调*机制:一种可以调用另一个*变量*方法的方法。接口是Java允许的回调方法,直到Java 8,我相信。 –

+0

啊,你是什么意思,直到Java 8,lambdas? –

回答

0

因为许多不同的类将要监听同一个事件,并且Java不允许多重继承。

0

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

这样你就不必在特定的类中实现特定的功能。虽然实现一个界面似乎是相同的,但事实并非如此。监听器的功能仍然是ja单一功能,但是该功能通常在轻量级对象中。但是,如果需要,您可以在侦听器中实现大量的程序机制。

另外,您可以在运行时更改侦听器。您不能更改重写功能。

这里有很多很好的理由可以使用composition (over inheritance)

如果你真的想明白这一点,我鼓励你看看“Heads first: Design Patterns”。亚马逊的“look inside”功能包含完整的第1章,它极大地解释了这种模式。

相关问题