Ответ
MVC (Model-View-Controller) — архитектурный паттерн, разделяющий приложение на три компонента с чёткими обязанностями:
- Model (Модель) — содержит бизнес-логику и данные приложения. Отвечает за доступ к данным, их валидацию и состояние.
- View (Представление) — отвечает за отображение данных пользователю (UI). Получает данные от модели, но не изменяет их напрямую.
- Controller (Контроллер) — обрабатывает пользовательский ввод (запросы), взаимодействует с моделью для обновления данных и выбирает представление для отображения ответа.
Почему это важно? Паттерн обеспечивает разделение ответственности, что упрощает тестирование, поддержку и параллельную разработку компонентов.
Пример реализации на Spring MVC:
@Controller
public class UserController {
@GetMapping("/user/{id}")
public String getUser(@PathVariable int id, Model model) {
// 1. Controller обрабатывает запрос и вызывает Model
User user = userService.findById(id);
// 2. Controller передаёт данные в Model для View
model.addAttribute("user", user);
// 3. Controller возвращает имя шаблона (View)
return "user-profile"; // Шаблон user-profile.html (Thymeleaf/JSP)
}
}
Где применял: В бэкенд-фреймворках (Spring MVC, Jakarta EE) и на фронтенде (Angular, Backbone.js).