The Model-View-Controller (MVC) Pattern is provides a method for separating the three main portions of an application: the domain (data being acted upon) and business logic, or model; the presentation, or view; and, the application control logic components, or controller. Each logical component has its own job to do. Generally, the request comes in thru the controller, which interacts with the model (data) to determine what needs to be displayed. Finally, the controller passes any data required to the view, which is presented to the user.