Вопрос терминологии «фасада»

#design-patterns #soa #uml

#шаблоны проектирования #soa #uml

Вопрос:

У меня есть вопрос терминологии / моделирования о представлении компонентов в сервисе. Рассмотрим..

Сценарий А:

ICatalogService —предоставляет—> PublishingManager.Опубликовать

ICatalogService —предоставляет—> RetrievalManager.Извлечение

Сценарий B:

ICatalogService —предоставляет—> CatalogManager.Опубликовать

ICatalogService —предоставляет—> CatalogManager.Извлечение

Представляет ли ICatalogService в сценарии A «фасад», поскольку он реализует более 1 компонента? Подходит ли какая-то другая терминология?

Для пуриста, есть ли какие-либо преимущества в разделении менеджеров «публикации» и «извлечения» (ОН же: контроллер), если они управляют одними и теми же типами объектов?, или вы бы использовали один «CatalogManager»?

Ответ №1:

Идея фасада заключается в том, что он скрывает сложность за упрощающим интерфейсом. Тот факт, что в сценарии A вы явно предоставляете PublishingManager amp; RetrievalManager, похоже, не соответствует этому определению (трудно быть окончательным, не зная больше о вашем коде).

К вашему второму вопросу. Я предполагаю, что эти две службы дополняют друг друга и используются для обеспечения связи между издателями и получателями. Если это правда, то пара мыслей:

  1. Мне было бы удобно использовать оба в одном сервисе, поскольку основной целью является создание соединений между издателями и получателями
  2. Предполагая, что я правильно понимаю, это похоже на шаблон публикации / подписки. Возможно, стоит взглянуть на это. Также рассмотрите возможность использования «Subscribe» вместо «Retrieve», поскольку это должно быть более знакомо.