Дизайн JMS-слушателя - PullRequest
1 голос
/ 13 мая 2011

Что лучше дизайн

Лучше ли иметь одного слушателя и отдельную обработку в этом слушателе для двух типов сообщений.

Или иметь двух слушателей для обработки и разделить их заголовками?

например. для другого типа класса. или интерфейсы.

----- редактировать

Вместо использования селекторов. Я могу, скажем, список обработчиков (интерфейс) и просто перебрать зарегистрированные (через IOC) обработчики и выбрать тот, который может обрабатывать сообщения. Он тоже отделен, но по-другому, что ты думаешь лучше?

Ответы [ 2 ]

2 голосов
/ 13 мая 2011

Использовать несколько слушателей.

Зачем вам писать код, который дублирует существующие возможности технологии, которую вы уже используете. Я использую здесь слово «дублирование» только в его простейшем смысле, поскольку JMS может поддерживать довольно сложный процесс принятия решений при маршрутизации ваших сообщений.

Другими соображениями являются возможность распределять рабочую нагрузку на основе селекторов для каждого слушателя. С несколькими слушателями вы можете настроить количество потоков по типу сообщения и легко изменить это значение при необходимости. Конечно, вы могли бы сделать это и сами, но зачем?

1 голос
/ 13 мая 2011

Я бы предпочел объектно-ориентированный подход с отдельным слушателем для каждого сообщения.Таким образом, я мог бы добавить новое сообщение, добавив новый класс класса, вместо того, чтобы модифицировать существующий прослушиватель с большим количеством кода «if / else».

Это был бы пример открытого / закрытого принципа,из SOLID рекомендации Боба Мартина .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...