We developed this pattern during the course of our work in the field. While MVC provides an efficient framework for developing GUI interaction, HMVC scales it to the entire client tier. The entire source code for this article can be downloaded as a zip file from the Resources section below. MVC Developers primarily use MVC in Smalltalk for implementing GUI objects. Numerous GUI class libraries and application frameworks have reused and adopted the pattern.
Events cause the data in the model to change.
The controller determines how the user interacts with the view in the form of commands. The HMVC pattern decomposes the client tier into a hierarchy of parent-child MVC layers. The repetitive application of this pattern allows for a structured client-tier architecture, as shown in Figure 1. The layered MVC approach assembles a fairly complex client tier. Some of the key benefits of using HMVC reveal the benefits of object orientation.