#design-patterns #soa #uml
#шаблоны проектирования #soa #uml
Вопрос:
У меня есть вопрос терминологии / моделирования о представлении компонентов в сервисе. Рассмотрим..
Сценарий А:
ICatalogService —предоставляет—> PublishingManager.Опубликовать
ICatalogService —предоставляет—> RetrievalManager.Извлечение
Сценарий B:
ICatalogService —предоставляет—> CatalogManager.Опубликовать
ICatalogService —предоставляет—> CatalogManager.Извлечение
Представляет ли ICatalogService в сценарии A «фасад», поскольку он реализует более 1 компонента? Подходит ли какая-то другая терминология?
Для пуриста, есть ли какие-либо преимущества в разделении менеджеров «публикации» и «извлечения» (ОН же: контроллер), если они управляют одними и теми же типами объектов?, или вы бы использовали один «CatalogManager»?
Ответ №1:
Идея фасада заключается в том, что он скрывает сложность за упрощающим интерфейсом. Тот факт, что в сценарии A вы явно предоставляете PublishingManager amp; RetrievalManager, похоже, не соответствует этому определению (трудно быть окончательным, не зная больше о вашем коде).
К вашему второму вопросу. Я предполагаю, что эти две службы дополняют друг друга и используются для обеспечения связи между издателями и получателями. Если это правда, то пара мыслей:
- Мне было бы удобно использовать оба в одном сервисе, поскольку основной целью является создание соединений между издателями и получателями
- Предполагая, что я правильно понимаю, это похоже на шаблон публикации / подписки. Возможно, стоит взглянуть на это. Также рассмотрите возможность использования «Subscribe» вместо «Retrieve», поскольку это должно быть более знакомо.