我們使用基類和事件監聽器來處理我們的應用程序,從而獲得基類和事件監聽器接口。基類在調用任何操作後調用適當的事件偵聽器方法。下面的代碼顯示了我的設計:java中的事件監聽器
import java.util.EventListener;
public interface MyEventListener extends EventListener
{
public void preOperation();
public void postOperation();
}
然後我實現這個接口如下:
class MyEventListenerImpl implements MyEventListener
{
@Override
public void postOperation()
{
System.out.println("Do previous operation");
}
@Override
public void preOperation()
{
System.out.println("Do post operation");
}
}
然後我寫基類如下:
abstract class Base
{
private MyEventListener eventListener; /* this member injected */
public abstract void operation_1();
public void doOperation_1()
{
eventListener.preOperation(); /* call listener before invoking main operation_1 implementation */
operation_1(); /* call main operation_1 implementation */
eventListener.postOperation(); /* call listener after invoking main operation_1 implementation */
}
}
這些作品後
我寫我的實現Base類實現operation_1方法。 我本辦法由java.util.EventListener的標記接口而設計後,我的問題,看到另一個類:
- 抽象類EventListenerProxy將在java.util包中。
- EventListener支持org.apache.commons.lang3.event包中的泛型類。
我不知道從來沒有使用這些類。我想知道兩件事情:
- 您對我的設計意見(好或壞)
- 最佳實踐事件監聽器方法(由上述類或任何第三方框架)
My Listener是示例和實際的偵聽器方法有參數。 – MJM 2012-02-18 12:52:28
因此,您要求我們討論您的設計,而不告訴我們它打算解決哪個問題,並且不向我們展示您的實際設計? – 2012-02-18 12:54:19
我討論了我設計的事件監聽器,並不是所有的類和所有的接口,因爲那些對於我的問題來說很大並且沒有用處。 – MJM 2012-02-18 12:56:49