Model–view–controller
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are: 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.