MVC(Model-View-Controller) is a pattern of software design. It emphasizes separation between software’s business logic and display(That is, Separation of concerns), so that developers can easy to divide their work, and maintain project. Some design patterns are based on MVC such as MVVM(Model-View-ViewModel), MTP(Model-View-Presenter), and MVW(Model-View-Whatever), etc.
There are some disputes on definition, but most common definition includes:
- Model: Contains data, or business logic of the software. Business logic may contain algorithm, communication of database, etc.
- View: Contain layout, display of the software.
- Controller: Contains business logic of the software, or link Model and View.
- Model–view–controller on Wikipedia