In addition to dividing the application into three kinds of components, the Model-View-Controller (MVC) design defines the interactions between them.
- A Controller can send commands to the Model to update the Model's state (e.g., editing a document). It can also send commands to its associated View to change the View's presentation of the Model (e.g., by scrolling through a document).
- A Model notifies its associated Views and Controllers when there has been a change in its state. This notification allows the Views to produce updated output, and the Controllers to change the available set of commands. A passive implementation of MVC omits these notifications, because the application does not require them ot the software platform does not support them.
- A View requests information from the Model that it needs for generating an output representation to the the user.
Quoted by Muhammad Idham Azhari from wikipedia.org