Ответ
Модель (Model) в паттерне MVC отвечает за данные и бизнес-логику приложения. Её ключевые обязанности:
- Инкапсуляция состояния приложения (данные).
- Управление бизнес-правилами и валидацией.
- Взаимодействие с источниками данных (базы данных, API, файлы).
- Уведомление представления (View) об изменениях состояния (часто через механизм наблюдателя).
Модель не зависит от представления и контроллера, что обеспечивает разделение ответственности и упрощает тестирование.
Пример модели на Java:
public class User {
private String name;
private String email;
// Геттеры и сеттеры для данных
public String getName() { return name; }
public void setName(String name) { this.name = name; }
// Бизнес-логика (валидация)
public boolean isValidEmail() {
return email != null && email.matches("^[^@]+@[^@]+\.[^@]+$");
}
// Метод для взаимодействия с данными (упрощённо)
public void save() {
// Логика сохранения в БД через DAO/Repository
}
}
Модель часто сопровождается слоем доступа к данным (DAO, Repository), который также является частью её ответственности.