Model. The model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller). It maintains the state and notified observers/subscribers of change in information.
View. The view manages the display of information and also facilitates interaction with user. However, it does not act on user interaction (i.e., events) - that is the job of the controller
Controller. The controller interprets the mouse and keyboard inputs from the user, informing the model and/or the view to change as appropriate.
The responsibilites can be split as follows (Top down approach)
View
- Responsible for rendering of model - UI
- User interaction
Controller
- Responsible for responding to user input
- Instructing the Model to respond to the user input
Model
- Responsible for storing and retrieving data
- Maintenance of state
- Notification of Observers of change in state