Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements . This is done to separate internal representations of information from the ways information is presented to and accepted from the user.