Middle
Šta je MVP arhitektonski obrazac?
sobes.tech АИ
Одговор од АИ
MVP (Model-View-Presenter) je arhitektonski obrazac za razdvajanje poslovne logike, podataka i korisničkog interfejsa.
Ključne komponente:
- Model: Predstavlja podatke i poslovnu logiku. Nema saznanja o View ili Presenter.
- View: Prikazuje podatke, pruža korisnički interfejs i preusmerava akcije korisnika na Presenter. Ne sadrži poslovnu logiku. View je pasivan i samo prikazuje podatke primljene od Presenter.
- Presenter: Deluje kao posrednik između Modela i View-a. Obraduje događaje korisničkog interfejsa, izvlači podatke iz Modela i ažurira View. Presenter sadrži logiku prikaza, ali ne poslovnu logiku. Upravlja stanjem View-a.
Interakcija:
- Korisnik interaguje sa View-om.
- View delegira akciju Presenter-u.
- Presenter obrađuje akciju:
- Ažurira Model ako je potrebno.
- Zahteva podatke iz Modela.
- Ažurira View novim podacima.
Prednosti:
- Poboljšana testabilnost (Presenter i Model mogu biti testirani nezavisno od View-a).
- Podela odgovornosti.
- Bolje održavanje.
Primer (shema):
// Model
class DataModel {
getData() {
// ... logika za dobijanje podataka ...
return { message: "Zdravo iz modela!" };
}
}
// Prikaz (pseudokod UI)
class TextView {
display(data) {
// Ažurirati tekst na ekranu
console.log(data.message);
}
onClickButton(handler) {
// Prikačiti obradnik na dugme
}
}
// Presenter
class Presenter {
constructor(model, view) {
this.model = model;
this.view = view;
this.view.onClickButton(this.handleButtonClick.bind(this)); // Povezivanje događaja
}
handleButtonClick() {
const data = this.model.getData();
this.view.display(data);
}
}
// Upotreba
const model = new DataModel();
const view = new TextView(); // Pravi UI
const presenter = new Presenter(model, view);