java - 公开用于处理 Activity MQ 事件的接口(interface)

标签 java api interface event-handling activemq

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

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

最佳答案

我真的不认为tag interface这里是有道理的。听起来您想抛出事件并让观察者做某事,这将是 observer pattern 。您的界面不能为空,因为它必须能够抛出您计划生成的所有事件。应该有一些内部代码使用此接口(interface)并在每个监听器上引发事件。

例如:

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

例如。 FlipListener:监听硬币翻转。

public interface FlipListener{
    public void flip(final boolean heads);
}

事件生成器:通知每个事件的所有监听器。

例如。硬币:保留 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();
}

监听器实现:根据事件的知识执行某些操作。

例如。 StatsListener:通过监听硬币翻转事件来保存统计数据。

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;
    }
}

关于java - 公开用于处理 Activity MQ 事件的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27222839/

相关文章:

java - 这段 Java 代码是如何工作的?从未排序的链表中删除重复项

java - 为什么 getResource 为 NULL?

c# - 无法实现接口(interface)成员,因为它没有 List<IInterface> 的匹配返回类型

java - 如何获得一个类来实现这个gestureRecogniser?

java - JDBC 在应用程序级别自动提交为 false

java - 如何使用 Java SDK 在 dynamoDB 中确定更新或插入是否成功?

php - Linkedin 配置文件 API 与公开可用的 URI

javascript - Spotify API - 创建临时播放列表

javascript - 如何使用谷歌通讯录服务读取日期(出生)

java - 如何将其变为 OOP