Many of you are ( probably ) already aware of the definition of MVC Design pattern. There are many articles and research papers to explain the history and implementation of MVC.
Simply to put
“MVC is a design pattern used to isolate business logic from the user interface”.
Business Logic:
This is nothing but the calculations and data storage that form the core of the application. These are the reason for the applications existence.
User Interface:
Representation / rendering of the Information that comes through model. simply to put, It is a form of visualization of the state of the model.
Controller:
The user interaction with the Model and the View. The Controller is typically responsible for calling methods on the model that change the state of the model.
Relationship:
View and Controller:
Views and controllers are tightly coupled. Each view instance is associated with a single unique controller instance and vise versa. The controller is considered a strategy that the view uses for input. The view is also responsible for creating new views and controllers.
Model and View:
The view depends on the model. Changes to the model interface require parallel changes in the view. It is very difficult to achieve a strict separation between the model and view.
Model and Controller:
The Controller depends on the model. Changes to the model interface may require parallel changes to the controller.