8 de julio de 2013

Composite View

Gestiona los diferentes elementos de la vista por medio de una plantilla que hace la representación de las vistas más manejable. Con este patrón se tiende a utilizar vistas compuestas que están formadas por múltiples sub-vistas.
El abuso de estas subdivisiones puede tener un efecto negativo en el rendimiento por lo que es conveniente alcanzar un compromiso entre modularidad y mantenimiento frente a rendimiento.

·         Propósito
Crear Vistas Compuestas de varias sub-vistas de forma modular, flexible y extensible para construir vistas de páginas JSP para aplicaciones J2EE.

·         Descripción
Cuando un usuario navega a través de aplicaciones gráficas los datos y el contenido entre las  diferentes páginas varía, pero muchos elementos, como una cabecera común o una barra lateral permanecen intactos en todas las vistas. La estructura y disposición de cada página puede ser la  misma y algunos elementos o secciones de la página pueden aparecer en varias páginas  diferentes. Cuando estos elementos y grupos se codifican directamente en la aplicación se  vuelve muy difícil la tarea de modificar las vistas y se puede incurrir en inconsistencias.
Las páginas Web sofisticadas presentan contenido de varias fuentes de datos, utilizando  una Vista Compuesta (Composite View) formada por otras sub-vistas. Cualquier cambio realizado en una sub-vista es reflejado automáticamente en cada Vista Compuesta que la utilice.
La Vista Compuesta también maneja la disposición de sus sub-vistas y proporciona una  plantilla, dando una apariencia consistente y facilidades a la hora de modificarla y mantenerla a  lo largo de toda la aplicación.

·         Aplicación
Se usará el patrón Composite View cuando:
-       Varias vistas compuestas utilizan sub-vistas similares.
-       Las porciones atómicas del contenido de una vista cambian con frecuencia.

·         Estructura

·         Participantes

-       Vistas Compuestas
Una Vista Compuesta es una vista a la que se le han agregado varias sub-vistas.
-       View Manager (Controlador de Vistas)
El Controlador de Vista maneja la inclusión de fragmentos de una plantilla en la Vista Compuesta. El Controlador de Vista podría ser parte de un motor de ejecución estándar de páginas JSP, en la forma de la etiqueta <jsp:include> de JSP (véase figura), o podría encapsularse dentro de un helper JavaBean o una etiqueta personalizada, para proporcionar una funcionalidad más robusta.
-       Vistas Incluidas
Una Vista Incluida es una sub-vista, una pieza atómica de una vista mayor. Esta vista incluida  también podría ser una vista compuesta, incluyendo varias sub-vistas.
·         Diagrama de secuencia

·         Consecuencias

-       Cada componente de la plantilla puede incluirse dinámicamente dentro del todo y la  distribución de la página puede manejarse de forma independiente del contenido.

-       Esta solución es útil para la creación de vistas basadas en la inclusión y sustitución de fragmentos de plantilla modulares, tanto estáticos como dinámicos. Los diseñadores pueden hacer un prototipo de la distribución de la web, poniendo contenido estático en cada región de la plantilla. Según va progresando el desarrollo, este contenido se puede ir sustituyendo por el contenido dinámico.

-       Promueve la reutilización de porciones atómicas de la vista, animando a realizar diseños modulares.

-       Es apropiado utilizar este patrón para generar páginas que muestren componentes que  podrían combinarse de diferentes maneras. Esto ocurre, por ejemplo, con portales que  incluyan numerosas sub-vistas independientes, como noticias, información del tiempo, etc. en una sola página.

-       La distribución de la página se maneja y modifica de forma independiente al contenido de las sub-vistas.

-       Provoca una sobrecarga en tiempo de ejecución, un precio que hay que pagar por el incremento de flexibilidad que proporciona.


·         Patrones relacionados

El patrón de vista compuesta se podría utilizar como la vista del patrón View Helper. Así la  vista compuesta delega sus responsabilidades de procesamiento en sus clases de ayuda,  implementadas como JavaBeans o etiquetas personalizadas. Las clases de ayuda o helpers también almacenan el modelo de datos intermedio de la vista y sirven como adaptadores de  datos de negocio.

No hay comentarios:

Publicar un comentario