Hierarchical Model View Controller

From CSSEMediaWiki
Jump to: navigation, search

Hierarchical Model View Controller (HMVC) is an extension on the traditional Model view controller (MVC) architecture. It's main purpose is for use in web applications. The HMVC came about as a solution to scalability problems present in applications which used MVC. The solution was to convert the standard MVC into a hierarchy of parent child MVC layers.

Each MVC subgroup (triad) is independent from one another, but can communicate via their controllers. This allows for the software to be distributed over multiple locations.

HMVC Structure

Advantages of HMVC

  • Modularization - Reduction of dependencies between the disparate parts of the application.
  • Organization - Having a folder for each of the relevant triads makes for a lighter work load.
  • Re-usability - By nature of the design it is easy to reuse nearly every piece of code.
  • Extendibility - Makes the application more extensible without sacrificing ease of maintenance.


HMVC is often suitable for use in n-tier web applications. This is particularly true if there is a large variety of servers, platforms and protocols. The client-tier architecture addresses a number of issues:

  • Structure of GUI
  • Users interaction with GUI
  • Separation of server side data and GUI
  • Mechanisms used for event management, application flows and controls.

See also

Personal tools