The responsibilities of each layer
- Controller - bridge between the model and view. Decides where to go next.
- View - displays the data, gathers user input
- Model - business logic, interface to data store.
One of the biggest gains is in maintenance and expansion
- If you need to change business logic, you should not need to modify your controller or view.
- If you change your visual display, you should not need to modify your model or controller.
- If you change your workflow, you should not need to modify your view or model.
Source