Middle
Co je to architektonický vzor MVP?
sobes.tech AI
Odpověď od AI
MVP (Model-View-Presenter) je architektonický vzor na oddělení podnikové logiky, dat a uživatelského rozhraní.
Klíčové komponenty:
- Model: Reprezentuje data a podnikovou logiku. Nemá znalosti o View nebo Presenter.
- View: Zobrazuje data, poskytuje uživatelské rozhraní a přesměrovává akce uživatele na Presenter. Neobsahuje podnikovou logiku. View je pasivní a pouze zobrazuje data přijatá od Presenter.
- Presenter: Působí jako prostředník mezi Model a View. Zpracovává události uživatelského rozhraní, získává data z Modelu a aktualizuje View. Obsahuje logiku prezentace, nikoli podnikovou logiku. Řídí stav View.
Interakce:
- Uživatel interaguje s View.
- View deleguje akci na Presenter.
- Presenter zpracovává akci:
- Aktualizuje Model, pokud je to potřeba.
- Požaduje data z Modelu.
- Aktualizuje View s novými daty.
Výhody:
- Vylepšená testovatelnost (Presenter a Model mohou být testovány nezávisle na View).
- Rozdělení odpovědností.
- Lepší údržba.
Příklad (schéma):
// Model
class DataModel {
getData() {
// ... logika získávání dat ...
return { message: "Ahoj z modelu!" };
}
}
// Pohled (pseudokód UI)
class TextView {
display(data) {
// Aktualizovat text na obrazovce
console.log(data.message);
}
onClickButton(handler) {
// Připojit obslužnou funkci k tlačítku
}
}
// Presenter
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Připojení události
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Použití
const model = new DataModel();
const view = new TextView(); // Reálné UI
const presenter = new Presenter(model, view);