stringtranslate.com

Modelo jerárquico-vista-controlador

La estructura de una aplicación con PAC .

El modelo jerárquico-vista-controlador ( HMVC ) es un patrón de arquitectura de software , una variación del modelo-vista-controlador (MVC) similar al patrón de presentación-abstracción-control (PAC), que se publicó en 2000 en un artículo [1] en JavaWorld Magazine. Los autores aparentemente desconocían el PAC, que se publicó 13 años antes. [2]

El controlador tiene cierta supervisión, ya que selecciona primero el modelo y luego la vista, lo que permite que el controlador implemente un mecanismo de aprobación. El modelo evita que la vista acceda directamente a la fuente de datos.

Ejemplo

El mayor beneficio práctico de utilizar una arquitectura HMVC es la "widgetización" de las estructuras de contenido. [3] Un ejemplo podría ser los comentarios, las calificaciones, la visualización de feeds RSS de Twitter o blogs, o la visualización de los contenidos del carrito de compras para un sitio web de comercio electrónico. Es esencialmente un fragmento de contenido que debe mostrarse en varias páginas, y posiblemente incluso en diferentes lugares, según el contexto de la solicitud HTTP principal.

Los marcos MVC tradicionales generalmente no brindan una respuesta directa para este tipo de estructuras de contenido, por lo que los programadores a menudo terminan duplicando y cambiando diseños, utilizando ayudantes personalizados, creando sus propias estructuras de widgets o archivos de biblioteca, o extrayendo datos no relacionados del controlador principal solicitado para enviarlos a la vista y renderizarlos en una parte. La desventaja es que la responsabilidad de renderizar una parte particular de contenido o cargar los datos requeridos se filtra en múltiples áreas y se duplica en los lugares respectivos.

HMVC, o específicamente la capacidad de enviar subsolicitudes a un controlador para manejar estas responsabilidades, tiene como objetivo resolver este problema. La estructura imita la del MVC tradicional. Por ejemplo, si uno necesita cargar algunos datos sobre comentarios y mostrarlos en formato HTML, uno enviaría una solicitud al controlador de comentarios con algunos parámetros. Luego, la solicitud interactúa con el modelo, elige una vista, que muestra el contenido. La diferencia con un MVC tradicional es que, en lugar de mostrar los comentarios en una página completamente separada, se muestran en línea debajo del artículo que está viendo el usuario. En este sentido, HMVC se esfuerza por aumentar la modularidad del código , ayudar a la reutilización y mantener una mejor separación de preocupaciones.

Véase también

Referencias

  1. ^ Cai, Jason; Kapila, Ranjit; Pal, Gaurav (21 de julio de 2000). "HMVC: El patrón en capas para desarrollar niveles de cliente sólidos". JavaWorld . Consultado el 18 de julio de 2020 .
  2. ^ "TP" (8 de septiembre de 2000). "¿HMVC es PAC?". Cartas al editor. JavaWorld . Archivado desde el original el 19 de marzo de 2006.
  3. ^ Vance Lucas (abril de 2011). "¿Por qué el patrón HMVC?". StackOverflow . Consultado el 15 de octubre de 2013 .