Articulo de referencia

Acción-dominio-respondedor

El patrón de arquitectura de software Action-domain-responder ( ADR ) fue propuesto por Paul M. Jones [ 1 ] como un refinamiento del patrón Model-view-controller (MVC) más adecu...

El patrón de arquitectura de software Action-domain-responder ( ADR ) fue propuesto por Paul M. Jones [ 1 ] como un refinamiento del patrón Model-view-controller (MVC) más adecuado para aplicaciones web. ADR fue diseñado para ajustarse mejor al flujo de solicitud-respuesta de las comunicaciones HTTP que MVC, que fue diseñado originalmente para aplicaciones de escritorio. Al igual que MVC, el patrón se divide en tres partes.

Componentes

  • La acción toma solicitudes HTTP ( URL y sus métodos) y utiliza esa entrada para interactuar con el dominio , después de lo cual pasa la salida del dominio a un único respondedor .
  • El dominio puede modificar el estado, interactuando con el almacenamiento y/o manipulando los datos según sea necesario. Contiene la lógica de negocio.
  • El respondedor construye toda la respuesta HTTP a partir del dominio.su salida que le es dada por la acción .

Comparación con MVC

No hay que confundir ADR con un cambio de nombre de MVC; sin embargo, existen algunas similitudes.

  • El modelo MVC es muy similar al dominio ADR . La diferencia radica en el comportamiento: en MVC, la vista puede enviar información al modelo o modificarlo , mientras que en ADR, el dominio solo recibe información de la acción , no del respondedor .
  • En el modelo MVC centrado en la web, el controlador simplemente utiliza la vista para generar el contenido de una respuesta, que luego puede manipular antes de enviarla como salida. En ADR, el control de ejecución pasa al respondedor una vez que la acción termina de interactuar con el dominio , por lo que el respondedor es totalmente responsable de generar toda la salida. El respondedor puede entonces utilizar cualquier vista o sistema de plantillas que necesite.
  • Los controladores MVC suelen contener varios métodos que, al combinarse en una sola clase, requieren lógica adicional para su correcto funcionamiento, como ganchos previos y posteriores a la acción. Sin embargo, cada acción ADR se representa mediante clases o cierres independientes. En cuanto a su comportamiento, la acción interactúa con el dominio de la misma forma que el controlador MVC interactúa con el modelo , con la diferencia de que la acción no interactúa con una vista o un sistema de plantillas, sino que transfiere el control al respondedor , que se encarga de ello.

Referencias

  1. "Action-Domain-Responder: Un refinamiento tentativo de MVC" . paul-m-jones.com .
  • Propuesta original de ADR de Paul M. Jones
  • Implementación de ADR en Laravel , una implementación del patrón en el framework PHP Laravel .