Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements:
the model, the internal representations of information;
the view, the interface that presents information to and accepts it from the user;
the controller, the software linking the two.