The MVC Architecture is a framework in which the information seen by the user is separate from the interactions the user performs on it.
The Architecture works by dividing the work among three main components.
Model Component – The lowest level component which is responsible for maintaining and interfacing with the data.
View Component – this component is responsible to display the information to the user.
Controller Component – This component is responsible to control the interaction between the view and model components and capturing the user’s interaction with the information presented.
The user sees the information required through the View component, but his interactions with the information are passed through the Controller component. The Controller component regulates the interactions and commands the model component on what information has to be passed to the View component and also regulates the format in which the View component displays the information.
This architecture is widely used in World Wide Web applications, due to the benefits of code re-usability and separation of concerns.
Code re-usability helps in porting parts of the components to other systems as the components itself are self contained and all interactions are through each components interface.
Separation of concern is when each component has a distinct functioning and they do not overlap, this makes sure that on an error the problem can be easily pinpointed.
The MVC architecture was first formulated in the 1970 by Trygve Reenskaug and it is still growing and widely used architecture spanning web to commercial and non commercial applications. The benefits of the architecture are immense for businesses as it helps in efficiency, maintenance and reducing cost across the board by separating the presentation layer from the logical layer.