A Model-View-Controller, or MVC, is a design and architectural pattern in which the model manages the behavior and the data of the application domain, view manages the display of information and controller handles input events from the user interface using handlers and tells the model or view how to update itself accordingly.