我们使用基类和事件侦听器来设计我们的应用程序,从而获得基类和事件侦听器接口。基类在调用任何操作后调用适当的事件侦听器方法。以下代码显示了我的设计:
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标记接口来做这个方法,但是在设计之后我的问题看到另一个类:
java.util包中的抽象类EventListenerProxy。
EventListenerSupport org.apache.commons.lang3.event包中的泛型类。
我永远不知道这些课程。我想知道两件事情:
您对我的设计的看法(好或不好)
Event Listener方法的最佳实践(由所述类或任何第三方框架)