Model-view-controller (MVC) is a software design pattern used for developing user interfaces. It divides a program’s logic into three distinct, interconnected elements in terms of their responsibilities:

  • The model mainly manages the data of the application. This takes many forms: in some applications it represents a table in a database.
  • The view is a visual representation of this information.
  • The controller handles user input and converts this to commands for the model/view.

Why does this matter? Many software applications involving GUIs, like in web development use this model. In addition, many tools are intended for MVC use, like GTK, Django, or Ruby on Rails.