Инструменты пользователя

Инструменты сайта


develop:java:mvc

Это старая версия документа!


Model-View-Controller

Набор архитектурных идей и принципов для построения сложных информационных систем с пользовательским интерфейсом

Model
Содержит всю бизнес-логику приложения
Самая независимая часть системы, она не должна ничего знать о двух других модулях

View
Отвечает за отображение данных пользователю, все что видит пользователь
Представляет информацию из модели в удобном для пользователя виде

Controller
Код, который отвечает за обработку действий пользователя
Именно через него вносятся изменения в модель

Отделить бизнес-логику от интерфейса

Ключевая идея в том что любое приложение, в первом приближении, можно разбить на два модуля

Первый модуль содержит основной функционал приложения, он является ядром системы, в которой реализована модель предметной области
Во втором реализован весь пользовательский интерфейс, включая отображение и логику взаимодействия пользователя с приложением

Использование шаблона наблюдатель

Для еще большей независимости модели от интерфейса, интерфейс должен быть в роли т.н. наблюдателя, шаблон проектирования, из серии сигнало-слотов
При каких либо изменениях, модель просто посылает сигнал, все подписчики его получают и реагируют

Разделение интерфейса на вид и контроллер

Один из вариантов разделения это функциональный, т.е. у интерфейса есть две функции, «вводить» данные и «выводить» их, по этой линии можно и выполнить разделение

Фасад

Вид и контроллер не должны напрямую работать с классами/методами модели, иначе теряется независимость
Модель представляет тесно связанный между собой набор классов, к которым ни у Вида ни у Контроллера не должно быть доступа

Для связи необходимо реализовать шаблон проектирования «Фасад», он и будет той самой прослойкой между Моделью и интерфейсом. Вид и Контроллер работают только с методами классов фасада, как и модель, тоже взаимодействует только с фасадом

MVC Spring-boot

 
develop/java/mvc.1680409260.txt.gz · Последнее изменение: 2023/04/02 04:21 — admin