Como parte de mi modelo de dominio, digamos que tengo un objeto WorkItem
. El objeto WorkItem
tiene varias relaciones para buscar valores como:¿Deben modelarse los valores de búsqueda como raíces agregadas?
WorkItemType
:
- historias de usuario
- Bug
- Enhancement
Priority
:
- alta
- Medio
- baja
Y, posiblemente, podría haber más, como Status
, Severity
, etc ... afirma
DDD que si existe algo dentro de una raíz agregado que usted no debe Intente acceder a él fuera de la raíz agregada. Entonces, si deseo poder agregar nuevos WorkItemTypes como Task o nuevas Prioridades como Critical, ¿esos valores de búsqueda deben ser raíces agregadas con sus propios repositorios? Esto parece un poco exagerado, especialmente si solo son un par de valores clave. ¿Cómo debo permitir que un usuario modifique estos valores y cumpla con la regla de encapsulación de raíz agregada?
En mi caso, la aplicación necesita modificar los valores de búsqueda. Supongo que modelar estos objetos como agregados parece tener sentido. Vaughn Vernon tiene una explicación de cómo estos agregados pueden funcionar juntos en este [artículo] (http://dddcommunity.org/sites/default/files/pdf_articles/Vernon_2011_2.pdf). En la parte inferior de la página 8, menciona que podría hacer que un servicio de aplicaciones resuelva las dependencias. También afirma que si las consultas se vuelven demasiado costosas, podría usar CQRS. –