Saltar a contenido

Building Blocks (Patrones Tácticos)

  1. Entidades: Las entidades son objetos que poseen una identidad propia y son fundamentales para el modelado del dominio. Cada entidad se identifica de manera única, lo que permite que su estado pueda ser rastreado a lo largo del tiempo. Por ejemplo, en un sistema de biblioteca, un libro puede ser considerado una entidad, ya que posee atributos como título, autor, ISBN y estado de disponibilidad. De la misma forma, un lector también es una entidad, con atributos como nombre, número de identificación e historial de préstamos. Esta identidad es crucial, pues garantiza que las operaciones e interacciones con estas entidades sean precisas y consistentes, permitiendo al sistema reflejar con fidelidad la realidad del dominio que se está modelando.

  2. Repositorios: Los repositorios desempeñan un papel central en la persistencia de datos, siendo responsables de recuperar y almacenar entidades y agregados. Actúan como un puente entre la lógica de negocio de la aplicación y la capa de persistencia de datos, como una base de datos. La función principal de un repositorio es proporcionar una interfaz para la manipulación de entidades, permitiendo operaciones como agregar, buscar, actualizar y eliminar objetos. Por ejemplo, en un sistema de biblioteca, un BookRepository puede ofrecer métodos para encontrar libros por título, autor o ISBN. Esta abstracción simplifica la implementación, permitiendo que los desarrolladores se concentren en la lógica de negocio sin preocuparse por los detalles de cómo se almacenan y recuperan los datos.

  3. Servicios: Los servicios encapsulan la lógica de negocio que no encaja claramente en entidades u Objetos de Valor (Value Objects). Son responsables de realizar operaciones que pueden involucrar múltiples entidades o que requieren reglas de negocio complejas. Por ejemplo, en un sistema de comercio electrónico, un servicio puede calcular el valor total de un pedido, considerando los precios de los artículos, descuentos, impuestos y tarifas de envío. Esta lógica puede ser mucho más compleja que simplemente sumar valores, ya que puede incluir reglas específicas de aplicación de descuentos dependiendo del tipo de cliente o del valor total del pedido. Al mantener esta lógica en un servicio separado, el código se vuelve más modular y fácil de mantener, permitiendo que los desarrolladores aíslen y prueben esta lógica de manera eficiente sin interferir en las entidades o en la persistencia de datos.

  4. Controladores (MVC): En el contexto del desarrollo de software, especialmente en aplicaciones web, un Controlador es un componente que actúa como intermediario entre la interfaz de usuario (UI) y la lógica de negocio de la aplicación. Es responsable de gestionar las solicitudes del usuario, procesar estas solicitudes, interactuar con los servicios y devolver las respuestas apropiadas.

ClientControllerServiceRepositoryEntityClientClientControllerControllerServiceServiceRepositoryRepositoryEntityEntityEjecuta unaoperación en el sistemaDesempaqueta el mensajedel protocolo (HTTP, AMQP, etc.),lo envía a la capa de servicioOrquesta reglasentre datos dependientesEjecuta una consulta en lacapa de abstracciónde la base de datosDevuelve datosencapsulados en la entidadDevuelve el conjuntode datos de entidades solicitadoDevuelve los datosprocesados y orquestados,listos para su consumoEnvuelve los datosen el protocolo elegidopor la aplicación y los entrega