2017-02-01 3 views
2

Я хочу создать оболочку для разговора с очереди сообщений f. Реализация обертки должна быть достаточно общей, чтобы клиенту библиотеки не приходилось изменять какие-либо изменения кода, если они хотят переключиться с одного поставщика MQ (например, RabbitMQ) на другую службу MQ (скажем Amazon SQS).Дизайн шаблона для обертки для служб очереди сообщений

Какой шаблон дизайна вы порекомендуете для библиотеки и почему?

+0

[STOMP] (https://stomp.github.io/stomp-specification-1.2.html)? –

ответ

2

Вы ищете шаблон дизайна Adapter.

Предположим, у вас есть две технологии очередей: Q1 и Q2. Каждый из них предоставляет различные способы взаимодействия с ними. Дизайн класса выглядит следующим образом:

  • Создать интерфейс, скажем IQueue, с использованием общих методов. Например, getMessage(), postMessage() и deleteMessage().
  • Для Q1 создайте адаптер, который состоит из Q1-клиента и продолжит IQueue. Аналогично, для Q2.
  • Запишите заявку на номер IQueue. Затем переход от Q1 к Q2 просто включает замену одного класса адаптера другим.
Смежные вопросы