我對Java有這樣的疑問:當人們正在編寫事件監聽器時,他們實現了一個接口,並且他們在接口中定義了一個特定的函數來實現特定的任務。我懷疑是不是實現一個接口,我們可以用一個合適的名稱來定義函數。爲什麼我們需要接口來實現java中的事件監聽器?
另外,接口如何幫助實現事件監聽器?
我對Java有這樣的疑問:當人們正在編寫事件監聽器時,他們實現了一個接口,並且他們在接口中定義了一個特定的函數來實現特定的任務。我懷疑是不是實現一個接口,我們可以用一個合適的名稱來定義函數。爲什麼我們需要接口來實現java中的事件監聽器?
另外,接口如何幫助實現事件監聽器?
因爲許多不同的類將要監聽同一個事件,並且Java不允許多重繼承。
Listener接口爲您提供了很多實現自由。
這樣你就不必在特定的類中實現特定的功能。雖然實現一個界面似乎是相同的,但事實並非如此。監聽器的功能仍然是ja單一功能,但是該功能通常在輕量級對象中。但是,如果需要,您可以在偵聽器中實現大量的程序機制。
另外,您可以在運行時更改偵聽器。您不能更改重寫功能。
這裏有很多很好的理由可以使用composition (over inheritance)。
如果你真的想明白這一點,我鼓勵你看看「Heads first: Design Patterns」。亞馬遜的「look inside」功能包含完整的第1章,它極大地解釋了這種模式。
如果您有多個偵聽器,那麼您肯定會希望每個偵聽器都具有不同的功能。如果您使用的是Java 8,則可以使用'default'方法/實現的'interface',這意味着您不必覆蓋它。 –
要成功偵聽,您需要一個*回調*機制:一種可以調用另一個*變量*方法的方法。接口是Java允許的回調方法,直到Java 8,我相信。 –
啊,你是什麼意思,直到Java 8,lambdas? –