Modelo jerárquico-vista-controlador


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

El controlador tiene cierta supervisión en el sentido de que selecciona primero el modelo y luego la vista, realizando un mecanismo de aprobación por parte del controlador. El modelo evita que la vista acceda a la fuente de datos directamente.

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 comentarios, calificaciones, pantallas de feeds RSS de blogs o Twitter, o la visualización del contenido del carrito de compras para un sitio web de comercio electrónico. Esencialmente, es una pieza 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, usando ayudantes personalizados, creando sus propias estructuras de widgets o archivos de biblioteca, o extrayendo datos no relacionados del controlador principal solicitado para pasar a la Vista y renderizar de forma parcial. La desventaja es que la responsabilidad de reproducir un contenido en particular 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 sub-solicitudes 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, se 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.


La estructura de una aplicación con PAC .