Dispatcher View

RECU-0121 (Recurso Patrón)

Descripción

Se trata de un patrón de diseño modelo-vista-controlador con el controlador actuando como Front Controller. La diferencia con el patrón Front Controller es que el Dispatcher no utiliza View Helpers y realiza muy poco trabajo en el manejo de la vista. La vista es manejada por sus propios componentes.

Contexto

El sistema controla el flujo de ejecución y accede a los datos de negocio, desde los que crea el contenido de la presentación. Este patrón describe una combinación común de otros patrones del catálogo.

Problema

El problema es una combinación de los problemas resueltos por los patrones Front Controller y View Helper de la capa de presentación. No hay un componente centralizado para manejar el control de acceso, la recuperación de contenido o el manejo de la vista y hay código de control duplicado esparcido por varias vistas. Además, la lógica de negocio y la de formateo de la presentación están mezcladas en esas vistas, haciendo que el sistema sea menos flexible, menos reutilizable y, generalmente, menos resistente a los cambios.

Solución

Dispatcher View describe la combinación de los patrones Front Controller y View Helper con un componente Dispatcher. Aunque este patrón y Service to Worker describen una estructura similar, ambos sugieren diferentes divisiones de la labor entre los componentes. El controlador y el dispatcher tienen responsabilidades limitadas en comparación con lo que ocurre en el patrón Service to Worker, porque la lógica de procesamiento y de control de vista son básicas. Además, si no se considera necesario el control de los recursos subyacentes, se puede eliminar el controlador y el dispatcher se podría mover dentro de una vista.

Implementación y Participantes

  • Cliente: Realiza la petición.
  • Controller: Realiza la autentificación del cliente y delega en el Dispatcher la resolución de datos y el manejo de la vista.
  • Dispatcher: Es el responsable del control de la vista y la navegación, controlando la elección de la siguiente vista a mostrar y proporcionando el mecanismo para dirigir el control a este recurso.
  • View: Una vista o View representa una presentación de información al cliente. La información utilizada en esta presentación se recupera de un modelo.
  • Helper: Es el responsable de ayudar a la View o al Controller a completar su procesamiento.
  • ValueBean: Un ValueBean es otro nombre para un Helper que es responsable de contener el estado del modelo intermedio para que lo utilice una vista.
  • BussinessService: Servicio de negocio o BussinessService es un rol que cumple el servicio al que el cliente quiere acceder.

A continuación se presenta un modelo gráfico del diagrama de secuencia que representa la colaboración entre los participantes del patrón:

Clasificación

Otros

Enlaces externos

Contenidos relacionados

Pautas
Área: Desarrollo » Patrones de Diseño » Capa de presentación
Código Título Tipo Carácter
LIBP-0345 Uso de Patrones J2EE de la Capa de Presentación Libro de pautas Directriz Recomendada
Recursos
Área: Desarrollo » Patrones de Diseño
Código Título Tipo Carácter
RECU-0013 Patrones de diseño Ficha Recomendado