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

  1. Kasutaja suhtleb Vaatega.
  2. Vaade edastab tegevuse Presentaatorile.
  3. 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);