Introduction to MVC

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.