Sobes.tech
Middle

Kas ir MVP arhitektūras modelis?

sobes.tech AI

Atbilde no AI

MVP (Modeļa-Skats-Presentētājs) ir arhitektūras paraugs, kas paredzēts biznesa loģikas, datu un lietotāja saskarnes sadalīšanai:

Galvenās sastāvdaļas:

  • Modeļa: Attēlo datus un biznesa loģiku. Tam nav zināšanu par Skatu vai Presentētāju.
  • Skats: Parāda datus, nodrošina lietotāja saskarni un novirza lietotāja darbības uz Presentētāju. Tam nav biznesa loģikas. Skats ir pasīvs un tikai parāda saņemtos datus.
  • Presentētājs: Darbojas kā starpnieks starp Modeļa un Skata komponentiem. Apstrādā lietotāja notikumus, iegūst datus no Modeļa un atjauno Skatu. Presentētājs satur attēlojuma loģiku, bet ne biznesa loģiku. Tas pārvalda Skata stāvokli.

Sadarbība:

  1. Lietotājs sadarbojas ar Skatu.
  2. Skats nodod darbību Presentētājam.
  3. Presentētājs apstrādā darbību:
    • Atjauno Modeļa, ja nepieciešams.
    • Prasa datus no Modeļa.
    • Atjauno Skatu ar jaunajiem datiem.

Priekšrocības:

  • Uzlabota testējamība (Presentētājs un Modelis var tikt testēti neatkarīgi no Skata).
  • Atbildības sadalījums.
  • Uzlabota uzturēšana.

Piemērs (shēma):

// Modelis
class DataModel {
    getData() {
        // ... datu iegūšanas loģika ...
        return { message: "Sveiki no modeļa!" };
    }
}

// Skats (UI pseido-kods)
class TextView {
    display(data) {
        // Teksta atjaunošana ekrānā
        console.log(data.message);
    }

    onClickButton(handler) {
        // Pievienot notikuma apstrādātāju
    }
}

// Presentētājs
class Presenter {
    constructor(model, view) {
        this.model = model;
        this.view = view;
        this.view.onClickButton(this.handleButtonClick.bind(this)); // Notikuma sasaistīšana
    }

    handleButtonClick() {
        const data = this.model.getData();
        this.view.display(data);
    }
}

// Lietošana
const model = new DataModel();
const view = new TextView(); // Reāla UI parādība
const presenter = new Presenter(model, view);