An architecture for building applications that separates the logic and data (model), the user interface (view) and processing (controller). The model-view-controller (MVC) method is widely used in Web-based application frameworks, in which case the model and controller functions are executed in the server, and the view is executed in the browser.
The model is a database that holds the business logic and application data, and the controller interacts directly with the model to modify the view.
The view manages the presentation to the user, while the controller accepts input from the user through forms, clicks and other interactions with the page and customizes the view based on the model.
Views and Controllers May Be Combined
In non-Web applications, MVC views and controllers are often combined into a single object because they are closely related. For example, the controller code validates a request for data and causes it to be returned in a view. View-controller objects are tied to only one model; however, a model can have many view-controller objects associated with it. See Struts