MVC is a well-established architectural pattern popularly used for building interactive web and desktop applications. There are numerous frameworks implementing this pattern in most software platforms. MVC divides the application into three core elements that actually represent layers, separates concerns between these three core elements, and defines how they communicate with each other.
Model represents data, View displays the Model, and Controller handles user actions. Model can be any data, including that stored in a database. It usually represents a collection of domain objects with clearly defined relationships to each other. A Model can be displayed in multiple views depending on how the application is designed.
Controller acts as an intermediary between View and Model. It often has a set of handlers for each event generated by the view as the user interacts with it. Controller delegates user actions to appropriate handlers and then finally redirects...