Java 公开用于处理活动MQ事件的接口

Java 公开用于处理活动MQ事件的接口,java,api,interface,event-handling,activemq,Java,Api,Interface,Event Handling,Activemq,我有一个用Java编写的应用程序,它通过ActiveMQ通信来运行。 我用Java实现了简单的消费者和生产者,它们通过活动MQ接收消息并将消息发送到特定平台 我需要为每个定义的事件向第三方提供接口,以便他们能够实现一个特定的接口来执行特定事件上的特定任务。 我正在研究不同类型的接口,我需要知道,如果标签接口在这种情况下能有所帮助,如果不能,那么我应该使用什么技术来实现这个场景?我真的认为a在这里没有意义。这听起来像是你想要抛出事件,让一个观察者做一些事情,这将是最重要的。您的接口不能为空,因为它

我有一个用Java编写的应用程序,它通过ActiveMQ通信来运行。 我用Java实现了简单的消费者和生产者,它们通过活动MQ接收消息并将消息发送到特定平台

我需要为每个定义的事件向第三方提供接口,以便他们能够实现一个特定的接口来执行特定事件上的特定任务。 我正在研究不同类型的接口,我需要知道,如果标签接口在这种情况下能有所帮助,如果不能,那么我应该使用什么技术来实现这个场景?

我真的认为a在这里没有意义。这听起来像是你想要抛出事件,让一个观察者做一些事情,这将是最重要的。您的接口不能为空,因为它必须能够抛出您计划生成的所有事件。应该有一些内部代码使用此接口并在每个侦听器上抛出事件

例如:

侦听器:侦听器类保存所有可能的事件

例如FlipListener:监听硬币的投掷

public interface FlipListener{
    public void flip(final boolean heads);
}
事件生成器:通知每个事件的所有侦听器

Ex.Coin:保存
FlipListener
的列表,并在每次投币时调用
flip
方法

public abstract class Coin {
    private final ArrayList<FlipListener> listeners = 
        new ArrayList<FlipListener>();

    public void addFlipListener(final FlipListener listener){
        listeners.add(listener);
    }

    public boolean flipCoin(){
        final boolean isHeads = doFlip();
        for(final FlipListener listener : listeners)
            listener.flip(isHeads);

        return isHeads;
    }

    /**
     * Perform the actual coin flip and return the results: 
     * true if heads and false is tails.
     */
    protected abstract boolean doFlip();
}
public class StatsListener implements FlipListener{
    private int heads = 0;
    private int tails = 0;

    public int heads(){
        return heads;
    }

    public int tails(){
        return tails;
    }

    public void flip(final boolean isHeads){
        if(isHeads)
            ++heads;
        else
            ++tails;
    }
}