Middle
Kas yra MVP architektūros modelis?
sobes.tech AI
Atsakymas iš AI
MVP (Modelis-Peržiūra-Pateikėjas) — tai architektūros šablonas, skirtas verslo logikos, duomenų ir naudotojo sąsajos atskyrimui:
Pagrindiniai komponentai:
- Modelis: Atstovauja duomenis ir verslo logiką. Neturi žinių apie Peržiūrą ar Pateikėją.
- Peržiūra: Rodo duomenis, teikia naudotojo sąsają ir nukreipia naudotojo veiksmus Pateikėjui. Nėra verslo logikos. Peržiūra yra pasyvi ir tik rodo gautus duomenis.
- Pateikėjas: Veikia kaip tarpininkas tarp Modelio ir Peržiūros. Apdoroja naudotojo įvykius, gauna duomenis iš Modelio ir atnaujina Peržiūrą. Pateikėjas turi pateikimo logiką, bet ne verslo logiką. Valdo Peržiūros būseną.
Sąveika:
- Naudotojas sąveikauja su Peržiūra.
- Peržiūra perduoda veiksmą Pateikėjui.
- Pateikėjas apdoroja veiksmą:
- Atnaujina Modelį, jei reikia.
- Užklausia duomenis iš Modelio.
- Atnaujina Peržiūrą naujais duomenimis.
Privalumai:
- Pagerinta testuojamumas (Pateikėjas ir Modelis gali būti testuojami nepriklausomai nuo Peržiūros).
- Atsakomybės pasidalijimas.
- Pagerinta palaikymas.
Pavyzdys (schema):
// Modelis
class DataModel {
getData() {
// ... duomenų gavimo logika ...
return { message: "Sveiki iš modelio!" };
}
}
// Peržiūra (UI pseudokodas)
class TextView {
display(data) {
// Teksto atnaujinimas ekrane
console.log(data.message);
}
onClickButton(handler) {
// Prikabinti įvykio tvarkytoją
}
}
// Pateikėjas
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Įvykio sujungimas
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Naudojimas
const model = new DataModel();
const view = new TextView(); // Tikras UI vaizdas
const presenter = new Presenter(model, view);