Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces on computers. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.
Traditionally used for desktop graphical user interfaces (GUIs), this architecture has become popular for designing web applications. As with other software patterns, MVC expresses the "core of the solution" to a problem while allowing it to be adapted for each system.