Composite View

RECU-0120 (Recurso Patrón)

Descripción

Ayuda al proceso de integración de varias subvistas en una página

Contexto

Normalmente una funcionalidad esta compuesta por un conjunto de vistas asociadas. Normalmente varias subvistas se integran para completar una sóla página. Además, varios individuos con diferentes habilidades contribuyen al desarrollo y mantenimiento de esas páginas Web. Es necesario estandarizar este proceso de integración y composición

Problema

En lugar de proporcionar un mecanismo para combinar modularmente, en el que porciones atómicas de una vista componen un página completa, las páginas se construyen embebiendo código de formateo directamente dentro de cada vista. La modificación de la distribución de múltiples vistas es difícil y propensa a errores, debido a la duplicación de código.

Solución

La mejor solución es apostar por la composición de vistas atómicas. Cada componente de la plantilla se puede incluir dentro del total, manejando la distribución de la página de forma independiente del contenido

Realmente con esta solución , se busca crear una vista que sea compuesta tanto por elementos dinámicos como por elementos estáticos que sean faciles de sustituir. El objetivo es conseguir un aumento en la reutilización de componentes gracias al diseño modular. Es apropiado utilizar este patrón para generar páginas que muestran componentes que podrían combinarse en una gran variedad de formas. La distribución de la página se maneja y modifica de forma independiente al contenido de las subvistas.

Implementación y Participantes

  • CompositeView: Una vista compuesta es una vista a la que se le han agregado varias subvistas.
  • ViewManager: El manejador de vista se ocupa de  la inclusión de porciones de fragmentos de plantilla en la vista compuesta
  • HeaderView : Es una subvista incluida dentro de la principal
  • FooterView: Es una subvista incluida dentro de la principal

A continuación se ofrece un diagrama de secuencia con la colaboración de los participantes del patrón:

113

Clasificación

Otros