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