В блоге приложение разработало домен использования управляемый дизайн, объект 'Сообщения' имеет связанный набор объектов тега.
При создании сообщения (например, заполнение объекта от UI) я хотел бы назвать третье лицо API через REST, который берет содержание сообщения и извлекает семантические теги (текст ссылки) для ассоциации.
Основной Вопрос: Что лучший способ состоит в том, чтобы разработать это...
Это лучше всего разработано так, чтобы объект Сообщения назвал бы доменный сервис, такой как PostServices. GetTags (Постсодержание) передача его содержания и получение поддерживают список тегов.?
** PostServices. GetTags затем соединил бы интерфейсом с остальными с API через дальнейший класс обертки.
Или третье лицо API должно быть перенесено как репозиторий?
Если функциональное Сообщение. GenerateTags (), не должен существовать в доменном объекте вообще?
Дальнейшие вопросы:
1: Я также считал, что это не хорошая практика, чтобы иметь доменный объект, обратный с доменным сервисом. Действительно ли это верно?
2: Это в порядке для получения ссылки на сервис домена PostServices через метод создания фабрики. например...
IPostService PostService = ServiceUtil. GetPostService (); возвратите PostService. GetTags (Post.content);
3: Действительно ли приемлемо связать доменный сервис со сторонним API?
4: Если доменный объект просто просто знает, как иметь дело с тегами, полученными через прикладной уровень, который назвал остальных API.
Медленно пытаясь получить мою голову вокруг DDD, однако я, может казаться, не нахожу примеров того, как реализовать этот вид вещи.
В приложении Blog пост - это сущность, а тег - объект значения. У тега нет идентичности. У вас должно быть:
У поста есть список тегов.
Вопросы:
1 : Я также читал, что не очень хорошо, когда доменная сущность общается с доменной службой. Это правда?
Да, это не очень хорошая практика. Вы не хотите, чтобы ваша сущность была связана с доменной службой. Если вы это сделаете, то потом не сможете использовать их повторно. Есть ли у вас идея вызывать события домена. Вы можете сказать своему сервису домена делать что-то, вызывая события домена.
2.: Можно ли получить ссылку на доменную службу PostServices через метод создания фабрики. например.IPostService PostService = ServiceUtil.GetPostService(); return PostService.GetTags(Post.content);
Да, это возможно. Метод фабрики может возвращать абстрактный класс или интерфейс. Это хороший принцип проектирования программного обеспечения "код к интерфейсу, а не к реализации". Если вы сделаете так, вы сможете изменить свою реализацию позже, и вам не придется менять код клиента.
3: Допустимо ли подключать доменную службу к стороннему api?
Я не рекомендую вам этого делать, но это допустимо.
Извините, я не понимаю вопрос 4.
Посмотрите эту ссылку. Надеюсь, она вам поможет.