Modell-nézet-prezenter

A Wikipédiából, a szabad enciklopédiából

A modell-nézet-prezenter (angolul: Modell-View-Presenter, röviden: MVP) egy szoftvertervezési minta, amely az MVC-mintából alakult ki. Az MVP-modell főleg olyan alkalmazásokban nyújt jelentős előnyöket – hasonlóan az MVC-hez –, ahol komplex adathalmazokon kell műveleteket végezni, és ezek eredményeit a felhasználó elé tárni. A mintát felhasználó alkalmazások a minta sajátosságaiból eredően könnyedén alávethetőek ún. egységteszteknek (angolul unit test).

Szerkezete[szerkesztés]

Az MVP modell három rétegre osztja az alkalmazást. Mindhárom rétegnek jól körülírható feladatai vannak, és csak a szomszéd réteggel kommunikálhatnak. Ez nagyfokú rugalmasságot ad: a két szélső komponens egymás tudta nélkül bármikor lecserélhető. Például egy új adatbázismotor támogatásához nem kell módosítani a felhasználói felületet, illetve egy új "publikus interfész" (pl. web-szerviz) bevezetése sem igényli a modell módosítását.

  • A modell az alkalmazás által megjelenített és feldolgozott adatok reprezentációja.
  • A nézet megjeleníti a modellben tárolt adatokat a felhasználó számára, illetve a felhasználói interakció során bekövetkező eseményeket továbbítja a prezenter felé.
  • A prezenter összegyűjti az adatokat, illetve formázza a nézet számára feldolgozható módon.

Passzív nézet[szerkesztés]

Passzívnak akkor nevezzük a View réteget, ha a megjelenítésen kívül nem végez semmilyen feladatot. Ebben az esetben garantáltan minden logika a Presenter rétegen van. A megközelítés hátránya, hogy sok olyan kód is a prezenter rétegre kerülhet, amelyet valójában nem ott kellene implementálni.

Felügyelő nézet[szerkesztés]

Akkor beszélünk Supervisor View-ről, ha a View nem csak passzívan megjeleníti az adatokat, hanem egyes vezérlési feladatokat saját maga is ellát. Bár első ránézésre a modell felrúgásának tűnhet a felügyelő nézet használata, valójában ezzel a megközelítéssel elkerülhetővé válik, hogy a prezenter a nézet mikromenedzsmentjével foglalkozzon.

Fordítás[szerkesztés]

  • Ez a szócikk részben vagy egészben a Modell-View-Presenter című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.