Java JMS消息侦听器设计

Java JMS消息侦听器设计,java,jms,Java,Jms,什么是更好的设计 对于两种类型的消息,最好是使用一个侦听器并在此侦听器中单独处理 或者有两个侦听器进行处理,并用头的名称将其分隔开 e、 g.针对不同类型的课程。或接口 -----编辑 而不是使用选择器。我可以有一个处理程序(接口)列表,只需遍历已注册(通过IOC)的处理程序,然后选择一个可以处理消息的处理程序。它也是分开的,但不同的是,你认为什么更好?我更喜欢面向对象的方法,每个消息都有一个单独的侦听器。这样,我就可以通过添加新类来添加新消息,而不必使用更多的“if/else”代码修改现有的侦

什么是更好的设计

对于两种类型的消息,最好是使用一个侦听器并在此侦听器中单独处理

或者有两个侦听器进行处理,并用头的名称将其分隔开

e、 g.针对不同类型的课程。或接口

-----编辑


而不是使用选择器。我可以有一个处理程序(接口)列表,只需遍历已注册(通过IOC)的处理程序,然后选择一个可以处理消息的处理程序。它也是分开的,但不同的是,你认为什么更好?

我更喜欢面向对象的方法,每个消息都有一个单独的侦听器。这样,我就可以通过添加新类来添加新消息,而不必使用更多的“if/else”代码修改现有的侦听器


这是一个打开/关闭原则的示例,其中之一是使用多个侦听器

为什么要编写与您已经使用的技术的现有功能重复的代码。我在这里使用“复制”一词只是最简单的意思,因为JMS可以在消息路由中支持相当复杂的决策过程


其他注意事项是基于每个侦听器的选择器分配工作负载的能力。使用多个侦听器,您可以按消息类型配置线程数,并根据需要轻松更改该值。当然,您也可以自己做,但为什么要这样做?

我可以有一个处理程序(接口)列表,只需遍历已注册(通过IOC)的处理程序,然后选择一个可以处理消息的处理程序。它也是分开的,但不同,你认为它更好吗?