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.

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.


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.