Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura en capas: El objetivo principal de DDD es aislar el dominio del resto del
sistema para que no dependa de otras funciones y así sea fácilmente mantenible. Por
ello DDD propone que la arquitectura del sistema se divida en al menos cuatro capas:
Presentación, Aplicación, Dominio e Infraestructura.
Capa de Presentación: Es la responsable de mostrar la información al usuario e
interpretar los eventos que realiza.
Capa de Aplicación: Encargada de coordinar/orquestar las actividades que se
llevan a cabo en el sistema.
Capa de Dominio: Es el corazón del sistema, representa toda la lógica y las
reglas del negocio.
Capa de Infraestructura: Es una capa que sirve de soporte a las demás, para el
acceso a datos, persistencia, librerías, etc.
Entidades: Son los objetos del modelo de dominio que se caracterizan por ser únicos y
que perduran durante el tiempo, es decir cada instancia del objeto tiene una identidad
propia que los diferencia de los demás a pesar de que tengan atributos o propiedades
similares.
Objetos de Valor: Al contrario de las entidades, los objetos de valor no tienen
identidad y solo son importantes sus atributos. Se recomienda que estos tipos de
objetos sean inmutables para poder usarlos y descartarlos cuando sea necesario.
Servicios: Los servicios representan operaciones, acciones o actividades que no
pertenecen conceptualmente a ningún objeto de dominio concreto. No tienen estado
propio ni un significado más allá que la acción que los definen y se utilizan para
modificar uno varios objetos de dominio.
Módulos: Cuando un sistema comienza a ser complejo es necesario mantener la
máxima cohesión y un bajo acoplamiento. Es por ello, que debemos organizar el
modelo de dominio en módulos.
Agregaciones: Las agregaciones son grupos de objetos que están relacionados entre sí.
Para definir las dependencias entre ellos, se tiene que definir cuál es el objeto raíz y
cuál es la frontera.
Fábricas: Es un patrón utilizado para disminuir la complejidad al momento de crear
agregaciones, de modo que cuando creamos el objeto raíz también se creen sus
objetos agregados.
Repositorios: Son elementos que se encargan de persistir y recuperar los objetos de
dominio que necesitamos que perduren en el tiempo. De esta manera desacoplamos
el dominio de la persistencia y de los distintos elementos necesarios para manejar las
transacciones.