La programación orientada a objetos es una herramienta muy potente debido a que se basa en un paradigma de modelado y provee una implementación de las construcciones del modelo. Java y otras herramientas permiten crear objetos y relaciones directamente análogas al modelo conceptual de objetos.
El diseño guiado por el dominio es un enfoque para el desarrollo de software con necesidades complejas mediante la conexión de la
implementación con un modelo en evolución de los conceptos clave del negocio.
Un buen modelo del dominio captura las abstracciones y las informaciones essenciales necessarias para entender el dominio en el contexto de los requisitos actuales y ayuda a la gente a entender el dominio - sus conceptos, terminologia y relaciones-.
El diseño guiado u orientado por el dominio (DDD) no es exactamente una
tecnología, sino una guía de prácticas y terminologías para organizar las
aplicaciones y estructurar el código. DDD se basa abstraer y "naturalizar" la
forma en que se interactúa con el sistema.
Este término fue acuñado por Eric Evans, en el libro "Domain
Driven Design ".
Esta enfoque complementa
muy bien la arquitectura MVC, especialmente en la capa del modelo.
Domain Model for a recipe application
Terminología utilizada en el diseño guiado por el dominio:
• Entidad : un objeto definido principalmente por un hilo de continuidad e identidad 2 . El concepto de identidad adoptado por DDD va más allá de las operaciones de los lenguajes orientados a objetos, ya que proporcionan una "identidad" a cada objeto. (por ejemplo, el operador == en java).
El concepto de identidad, desde el punto de vista del DDD, es un atributo más metafísico, que emerge del modelo y toma significado a través
del dominio. Es este concepto el que guía el diseño de la operación de identidad entre objetos del dominio. Por ejemplo, el muchas aplicaciones, el atributo "email" se utiliza como identificador de dos instancias de objeto
de tipo Usuario, ya que dos usuarios no pueden tener el mismo email.
• Value Object: un objeto que no tiene identidad. Por lo general, estos objetos son inmutables.
• Repository: objetos que se utilizan para almacenar, recuperar y eliminar entidades del almacenamiento de varias implementaciones.
• Service: Type of object that performs operations that do not belong conceptually to a particular object.
• Aggregate: Cluster of domain objects that can be treated as a single unit.
• Factory: The type of object used to create complex Aggregates.
Estaré encantado de ayudarte.
Contacta para mas información: aquí
You can give me support if you find this content is usefull!
Buy Me a Coffee