Use cases
MVC is a very generic and useful design pattern. In fact, all popular Web frameworks (Django, Rails, and Yii) and application frameworks (iPhone SDK, Android, and QT) make use of MVC or a variation of it (Model-View-Adapter (MVA), Model-View-Presenter (MVP), and so forth). However, even if we don't use any of these frameworks, it makes sense to implement the pattern on our own because of the benefits it provides, which are as follows:
The separation between the view and model allows graphics designers to focus on the UI part and programmers to focus on development, without interfering with each other.
Because of the loose coupling between the view and model, each part can be modified/extended without affecting the other. For example, adding a new view is trivial. Just implement a new controller for it.
Maintaining each part is easier because the responsibilities are clear.
When implementing MVC from scratch, be sure that you create smart models, thin controllers, and dumb views [Zlobin13...