tutorial que por impulsado guiado driven dominio domain diseño development ddd repository domain-driven-design service infrastructure

repository - que - Diseño impulsado por el dominio-API de datos externos como repositorio o servicio



que es ddd (1)

En una aplicación de blog, una publicación es una entidad y una etiqueta es un objeto de valor. Una etiqueta no tiene identidad. Deberías:

  • PostsRepository
  • Publicación (Entidad)
  • Etiqueta (objeto de valor)

Un mensaje tiene una lista de etiquetas.

Preguntas:

1: También he leído que no es una buena práctica que una entidad de dominio converse con un servicio de dominio. ¿Es esto cierto?

Sí, no es una buena práctica. Su entidad no quiere asociarse con un servicio de dominio. Si haces eso, entonces no podrías reutilizarlos más tarde. ¿Ha considerado disparar un evento de dominio? Puedes decirle a tu dominio de servicio que haga algo sobre eventos de dominio de fuego.

2.: ¿Está bien obtener una referencia al servicio de dominio PostServices a través de un método de creación de fábrica. eg.IPostService PostService = ServiceUtil.GetPostService (); return PostService.GetTags (Post.content);

Si es posible. Un método de fábrica podría devolver una clase abstracta o una interfaz. Este es un buen código de principio de diseño de software para una interfaz, no para una implementación. Si hace esto, podrá cambiar su implementación más tarde y no tendrá que cambiar su código de cliente.

3: ¿Es aceptable tener el servicio de dominio unido a una API de terceros?

No te recomiendo esto, pero es aceptable.

Lo siento, no entiendo la pregunta 4.

Mira este enlace Espero que te ayude

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

En una aplicación de blog desarrollada usando un diseño impulsado por dominio, una entidad ''Post'' tiene una colección relacionada de entidades de etiqueta.

Al crear la publicación (por ejemplo, rellenar el objeto de la interfaz de usuario) me gustaría llamar a una API de terceros a través de REST, que toma el contenido de la publicación y extrae las etiquetas semánticas ( texto de enlace ) para la asociación.

Pregunta principal : ¿Cuál es la mejor manera de diseñar esto ...

¿Está mejor diseñado para que la entidad Post llame a un servicio de dominio como PostServices.GetTags (Postcontent) pasando su contenido y recuperando una lista de etiquetas?

** PostServices.GetTags interactuaría con la API REST a través de una clase de contenedor adicional.

¿O debería la API de terceros ser envuelta como un repositorio?

¿La función Post.GenerateTags () no debería existir en absoluto dentro de la entidad de dominio?

Preguntas adicionales :

1: También he leído que no es una buena práctica que una entidad de dominio converse con un servicio de dominio. ¿Es esto cierto?

2: ¿Está bien obtener una referencia al servicio de dominio PostServices mediante un método de creación de fábrica? p.ej..

IPostService PostService = ServiceUtil.GetPostService (); return PostService.GetTags (Post.content);

3: ¿Es aceptable tener el servicio de dominio unido a una API de terceros?

4: ¿Debería la entidad de dominio simplemente saber cómo tratar las etiquetas recibidas a través de la capa de aplicación que ha llamado a la API REST?

Poco a poco tratando de entender DDD, sin embargo, no puedo encontrar ejemplos de cómo implementar este tipo de cosas.