Model-View-Controller (MVC) — метод разделения данных на три отдельных компонента так, что модификация каждого может осуществляться автономно. Основной смысл MVC — в отделении бизнес-логики от её представления, за счёт чего возможно повторное применение кода.
Компоненты MVC
Model
Модель предоставляет данные и методы работы с ними, например для запросов в базу данных, проверки на корректность и т. д. Она не знает, как визуализировать данные, и не имеет точек взаимодействия с пользователем, а значит, может иметь несколько различных представлений для одного макета.
View
Представление, или вид, отвечает за получение необходимых данных из модели и отправляет их пользователю. Представление не обрабатывает введённые данные пользователя, а лишь отображает их.
Controller
Контроллер обеспечивает взаимодействие пользователя с системой, оповещая модель о необходимости изменений. Для реализации этого действия он использует и модель, и представление.
Взаимодействие с пользователем осуществляется по следующей схеме: Модель-обновление-> Вид-представление-> Пользователь-использование-> Контроллер-изменение-> Модель.