Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
MVC is an architectural design pattern that encourages improved application organization through a separation of concerns. It enforces the isolation of business data (models) from user interfaces (views), with a third component (controllers) traditionally managing logic, user input, and coordination of models and views. The pattern was originally designed by Trygve Reenskaug while he was working on Smalltalk-80 (1979), where it was initially called Model-View-Controller-Editor. MVC was described in depth in the Gang of Four’s 1994 book Design Patterns: Elements of Reusable Object-Oriented Software, which played a role in popularizing its use.
It’s important to understand the issues that the original MVC pattern was aiming to solve, as it has changed quite heavily since the days of its origin. Back in the 70s, graphical user interfaces were few and far between. An approach known as separated presentation began to be used to make a clear division between domain objects, which modeled concepts in the real world (such as a photo, a person), and the presentation objects that were rendered to the user’s screen.