Using an MVC framework brings with it a number of tangible benefits, as follows:
- Decoupling of the various elements used to display information to the user.
- Increased flexibility and reuse.
- A single model may have multiple different views that can be used at different times.
- User interface design activities can be undertaken by a specialist team.
- Changes to the data of a model can trigger events in a completely different controller without each component knowing about the other.
- Views can contain other views in a nested fashion, thereby enhancing reuse.
- Changes in behavior of a component can be made without changing its visual representation (by changing the Controller and not the View).
- Rapid and parallel development.
- Testability of individual components.