Мы разработали наше приложение с базовыми классами и обработчиком событий Listener, таким образом, базовый класс и интерфейс прослушивателя событий.базовый класс вызывает соответствующий метод прослушивателя событий после вызова любой операции.Следующий код показывает мой дизайн:
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 */
}
}
послеВ этих работах я пишу свою реализацию Базового класса и реализую метод operation_1.Я делаю этот подход с помощью java.util.EventListener интерфейса маркера, но после разработки мою проблему вижу другой класс:
- Абстрактный класс EventListenerProxy в пакете java.util.
- Общий класс EventListenerSupport в пакете org.apache.commons.lang3.event.
Я не знаю, использовал ли этот класс никогда.Я хочу знать две вещи:
- Ваше мнение о моем дизайне (хорошее или плохое)
- лучшая практика для Приемника событий подход (указанным классом илилюбые сторонние фреймворки)