Sobes.tech
Middle

Kas yra MVP architektūros modelis?

sobes.tech AI

Atsakymas iš AI

MVP (Modelis-Peržiūra-Pateikėjas) — tai architektūros šablonas, skirtas verslo logikos, duomenų ir naudotojo sąsajos atskyrimui:

Pagrindiniai komponentai:

  • Modelis: Atstovauja duomenis ir verslo logiką. Neturi žinių apie Peržiūrą ar Pateikėją.
  • Peržiūra: Rodo duomenis, teikia naudotojo sąsają ir nukreipia naudotojo veiksmus Pateikėjui. Nėra verslo logikos. Peržiūra yra pasyvi ir tik rodo gautus duomenis.
  • Pateikėjas: Veikia kaip tarpininkas tarp Modelio ir Peržiūros. Apdoroja naudotojo įvykius, gauna duomenis iš Modelio ir atnaujina Peržiūrą. Pateikėjas turi pateikimo logiką, bet ne verslo logiką. Valdo Peržiūros būseną.

Sąveika:

  1. Naudotojas sąveikauja su Peržiūra.
  2. Peržiūra perduoda veiksmą Pateikėjui.
  3. Pateikėjas apdoroja veiksmą:
    • Atnaujina Modelį, jei reikia.
    • Užklausia duomenis iš Modelio.
    • Atnaujina Peržiūrą naujais duomenimis.

Privalumai:

  • Pagerinta testuojamumas (Pateikėjas ir Modelis gali būti testuojami nepriklausomai nuo Peržiūros).
  • Atsakomybės pasidalijimas.
  • Pagerinta palaikymas.

Pavyzdys (schema):

// Modelis
class DataModel {
    getData() {
        // ... duomenų gavimo logika ...
        return { message: "Sveiki iš modelio!" };
    }
}

// Peržiūra (UI pseudokodas)
class TextView {
    display(data) {
        // Teksto atnaujinimas ekrane
        console.log(data.message);
    }

    onClickButton(handler) {
        // Prikabinti įvykio tvarkytoją
    }
}

// Pateikėjas
class Presenter {
    constructor(model, view) {
        this.model = model;
        this.view = view;
        this.view.onClickButton(this.handleButtonClick.bind(this)); // Įvykio sujungimas
    }

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

// Naudojimas
const model = new DataModel();
const view = new TextView(); // Tikras UI vaizdas
const presenter = new Presenter(model, view);