Middle
Mis on MVP arhitektuurimuster?
sobes.tech AI
Vastus AI-lt
MVP (Mudeli-Vaade-Presentaator) on arhitektuurimuster, mis on mõeldud äriloogika, andmete ja kasutajaliidese eraldamiseks:
Peamised komponendid:
- Mudeli: Esindab andmeid ja äriloogikat. Ei tea Vaadest ega Presentaatorist:
- Vaade: Kuvab andmeid, pakub kasutajaliidest ja suunab kasutaja tegevused Presentaatorile. Ei sisalda äriloogikat. Vaade on passiivne ja kuvab ainult saadud andmeid:
- Presentaator: Tegutseb vahendajana Mudeli ja Vaate vahel. Töötleb kasutaja sündmusi, hangib andmeid Mudelist ja uuendab Vaadet. Presentaator sisaldab esitlusloogikat, kuid mitte äriloogikat. Kontrollib Vaate olekut:
Koostoime:
- Kasutaja suhtleb Vaatega.
- Vaade edastab tegevuse Presentaatorile.
- Presentaator töötleb tegevuse:
- Uuendab Mudelit, kui vaja.
- Küsib andmeid Mudelist.
- Uuendab Vaadet uute andmetega.
Eelised:
- Paranenud testitavus (Presentaator ja Mudel võivad olla testitud sõltumatult Vaate juurest).
- Vastutuse jaotus.
- Paranenud hooldus.
Näide (skeem):
// Mudel
class DataModel {
getData() {
// ... andmete saamise loogika ...
return { message: "Tere, mudelist!" };
}
}
// Vaade ( UI pseudokood)
class TextView {
display(data) {
// Teksti uuendamine ekraanil
console.log(data.message);
}
onClickButton(handler) {
// Seosta sündmuse töötleja
}
}
// Presentaator
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Sündmuse sidumine
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Kasutus
const model = new DataModel();
const view = new TextView(); // Reaalne UI vaade
const presenter = new Presenter(model, view);