domingo, 7 de julio de 2013

PATRÓN COMPOSITE VIEW

CONTEXTO
Las páginas Web sofisticadas presentan contenido de varias fuentes de datos, utilizando varias sub-vistas que completan una sola página. Además, varios individuos con diferentes habilidades contribuyen al desarrollo y mantenimiento de esas páginas Web.

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.

CAUSAS

  • Las porciones atómicas del contenido de la vista cambian con frecuencia.
  • Varias vistas compuestas utilizan sub-vistas similares, como una tabla de inventario de clientes. 
  • Los cambios de distribución son más difíciles de manejar y el código más difícil de mantener cuando las sub-vistas se embeben directamente y se duplican en varias vistas.
  • Frecuentemente, embeber las porciones cambiantes de la plantilla de texto directamente dentro de las vistas también afecta potencialmente a la disponibilidad y administración del sistema. 


SOLUCIÓN
Utilizar vistas compuestas que se componen de varias sub-vistas atómicas. Cada componente de la plantilla se podría incluir dinámicamente dentro del total y la distribución de la página se maneja independientemente del contenido.
Esta solución promueve la creación de una vista compuesta basada en la inclusión y sustitución de fragmentos de plantilla modulares tanto estáticos como dinámicos. También promueve la reutilización de porciones atómicas de la vista asegurando un 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. Este escenario ocurre, por ejemplo, con sites de portal que incluyen numerosas sub-vistas independientes, como noticias, información del tiempo, y valores de stocks en una sóla página. La distribución de la página se maneja y modifica de forma independiente al contenido de las sub-vistas.
Otro beneficio de este patrón es que los diseñadores Web pueden hacer un prototipo de la distribución de la site, conectando contenido estático en todas las regiones de la plantilla. Según va progresando el desarrollo de la site, ese contenido estático se puede sustituir por el contenido dinámico.
Este patrón también tiene inconvenientes. Provoca una sobrecarga en el entorno de ejecución, un precio que hay que pagar por el incremento de flexibilidad que proporciona. La utilización de un mecanismo de distribución más sofisticado también trae consigo algunos problemas de manejabilidad y desarrollo, ya que hay más artefactos que mantener y un cierto nivel indirecto de implementación que entender.

ESTRUCTURA
La siguiente figura representa el diagrama de clases del patrón Composite View.




PARTICIPANTES Y RESPONSABILIDADES
La siguiente figura representa el diagrama de secuencia del patrón Composite View.



Composite View- Una vista compuesta es una vista a la que se le han agregado varias sub-vistas.

View Manager- El Controlador de Vista maneja la inclusión de porciones de fragmentos de 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, o podría encapsularse dentro de un helper JavaBean (JSP 1.0+) o una etiqueta personalizada (JSP 1.1+) para proporcionar una funcionalidad más robusta.

Included View- Una Vista Incluida es una sub-vista que es una pieza atómica de un vista completa mayor. Esta vista incluida potencialmente también podría ser una vista compuesta, incluyeno ella misma varias sub-vistas.

CONSECUENCIAS

  • Mejora la Modularidad y la Reutilización 
  • Mejora la Flexibilidad 
  • Mejora el Mantenimiento y la Manejabilidad 
  • Reduce la Manejabilidad 
  • Impacto en el Rendimiento 


No hay comentarios:

Publicar un comentario