什么是推广发布订阅模式以允许同一消息通道上的多种类型的好模式?

时间:2012-07-31 15:23:27

标签: java spring design-patterns observer-pattern enterprise-integration

我正在使用spring发布订阅设置,将事件发布到单个频道。

不同的事件彼此完全不同,从类型中派生出侦听器的行为会很混乱。

我有足够的类型,但我不满意多种不同消息通道的爆炸,以处理不同的类型,所以我想尽可能防止这种情况。

2 个答案:

答案 0 :(得分:0)

看看Spring Integration模式。您可以仅使用声明性逻辑来执行pub / sub / channel模式。

http://static.springsource.org/spring-integration/reference/html/overview.html

答案 1 :(得分:0)

要求既不是Queue哲学也不是主题哲学......除了一些额外的识别受体逻辑之外还有一些混合......我试图给出一个基本的想法,

       Message -> this interface will have multiple subclasses for different types of messages
  interface Receptor {
        boolean isMessageDigestable(Message);
        void digestMessage(Message);
        void subscribe(Publisher);
  }

 different receptor will implement Receptor

 class Publisher {

      List<Receptor> receptors;

      void addReceptor(){//your code here};

      void produceMessage() {
          Message m = ....//message production
          for (Receptor r : receptors)
            {
               if (r.isDigestableMessage(m))
                     r.digestMessage(m);
            }
  }