Middle
Какво е архитектурният модел MVP?
sobes.tech AI
Отговор от AI
MVP (Model-View-Presenter) е архитектурен шаблон за разделяне на бизнес логиката, данните и потребителския интерфейс.
Ключови компоненти:
- Model: Представлява данните и бизнес логиката. Няма знания за View или Presenter.
- View: Изобразява данните, предоставя потребителски интерфейс и пренасочва действията на потребителя към Presenter. Не съдържа бизнес логика. View е пасивен и само показва данните, получени от Presenter.
- Presenter: Действа като посредник между Model и View. Обработва събитията на потребителския интерфейс, извлича данни от Model и актуализира View. Presenter съдържа логиката за представяне, но не бизнес логиката. Управлява състоянието на View.
Взаимодействие:
- Потребителят взаимодейства с View.
- View делегира действието към Presenter.
- Presenter обработва действието:
- Актуализира Model, ако е необходимо.
- Изисква данни от Model.
- Актуализира View с новите данни.
Предимства:
- Подобрена тестируемост (Presenter и Model могат да бъдат тествани независимо от View).
- Разделяне на отговорностите.
- По-добра поддръжка.
Пример (схема):
// Модел
class DataModel {
getData() {
// ... логика за получаване на данни ...
return { message: "Здравей от модела!" };
}
}
// Представяне (псевдо UI код)
class TextView {
display(data) {
// Обновяване на текста на екрана
console.log(data.message);
}
onClickButton(handler) {
// Прикачване на обработчик към бутона
}
}
// Презентър
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Връзка на събитието
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Използване
const model = new DataModel();
const view = new TextView(); // Реално UI
const presenter = new Presenter(model, view);