Sobes.tech
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:

  1. Korisnik interaguje sa View-om.
  2. View delegira akciju Presenter-u.
  3. 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);