Архитектурный паттерн, разделяющий приложение на три взаимосвязанные части:
- Model: Представляет данные и бизнес-логику. Не имеет информации о View или Controller. Уведомляет View об изменениях своих данных (через Observer, Listener).
- View: Отображает данные из модели и реагирует на действия пользователя. Не содержит бизнес-логики и не взаимодействует с Model напрямую. Отправляет запросы контроллеру при взаимодействии пользователя.
- Controller: Связывающий посредник между Model и View. Обрабатывает пользовательский ввод из View, обновляет Model и выбирает View для отображения.
Плюсы: