Model View Controller - Design Pattern

Basic principle is separation of  responsibilities.

Separating the code that governs a user interface into the model, view, and controller classes yields the following benefits:

  • Allows multiple representations (views) of the same information (model)
  • Allows user interfaces (views) to be easily added, removed, or changed, at both compile time and runtime
  • Allows response to user input (controller) to be easily changed, at both compile time and runtime
  • Promotes reuse (e.g., one view might be used with different models)
  • Allows multiple developers to simultaneously update the interface, logic, or input of an application without affecting other source code
  • Helps developers focus on a single aspect of the application at a time