Доменный управляемый дизайн - внешние данные API как Respository или Service

В блоге приложение разработало домен использования управляемый дизайн, объект 'Сообщения' имеет связанный набор объектов тега.

При создании сообщения (например, заполнение объекта от 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, однако я, может казаться, не нахожу примеров того, как реализовать этот вид вещи.

7
задан sjb101 16 February 2010 в 11:49
поделиться

1 ответ

В приложении Blog пост - это сущность, а тег - объект значения. У тега нет идентичности. У вас должно быть:

  • PostsRepository
  • Post (сущность)
  • Tag (объект значения)

У поста есть список тегов.

Вопросы:

1 : Я также читал, что не очень хорошо, когда доменная сущность общается с доменной службой. Это правда?

Да, это не очень хорошая практика. Вы не хотите, чтобы ваша сущность была связана с доменной службой. Если вы это сделаете, то потом не сможете использовать их повторно. Есть ли у вас идея вызывать события домена. Вы можете сказать своему сервису домена делать что-то, вызывая события домена.

2.: Можно ли получить ссылку на доменную службу PostServices через метод создания фабрики. например.IPostService PostService = ServiceUtil.GetPostService(); return PostService.GetTags(Post.content);

Да, это возможно. Метод фабрики может возвращать абстрактный класс или интерфейс. Это хороший принцип проектирования программного обеспечения "код к интерфейсу, а не к реализации". Если вы сделаете так, вы сможете изменить свою реализацию позже, и вам не придется менять код клиента.

3: Допустимо ли подключать доменную службу к стороннему api?

Я не рекомендую вам этого делать, но это допустимо.

Извините, я не понимаю вопрос 4.

Посмотрите эту ссылку. Надеюсь, она вам поможет.

https://stackoverflow.com/questions/901462/ddd-where-is-it-most-appropriate-to-get-a-list-of-value-objects/901562#901562

3
ответ дан 7 December 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: