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