我正在使用spring发布订阅设置,将事件发布到单个频道。
不同的事件彼此完全不同,从类型中派生出侦听器的行为会很混乱。
我有足够的类型,但我不满意多种不同消息通道的爆炸,以处理不同的类型,所以我想尽可能防止这种情况。
答案 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);
}
}