A modell-nézet-adapter (MVA) egy többrétegű szoftverarchitekturális minta. Összetett alkalmazásokban, amelyek sok felhasználótól szerzett adatokat kezelnek, a fejlesztők gyakran leválasztják az adatokat (modell) és felhasználói interfészeket (view, nézet) úgy, hogy a nézet változása ne érintse az adatokat, és az adatszerkezet változásai is függetlenek legyenek a nézettől. A hagyományos MVC háromszög alakban rendezi el a modellt, nézetet és vezérlőt, ahol a modell és a nézet a vezérlőt megkerülve kommunikálhat. A modell-nézet-adapter ezzel szemben egyenes mentén helyezi el modellt, adaptert és nézetet, ahol a modell és a nézet csak az adapteren keresztül kommunikálhat, közvetlenül nem.[1]

Ebben a mintában egyedül az adapter ismeri mind a modellt, mind a vezérlőt, amelyek megfeledkeznek egymásról. A hagyományos MVC mintában a közvetlen kommunikáció további bonyodalmakat okozhat, például többszörözni kell a nézetet vagy az adatbázis átalakítása bonyolult. Egy szövegszerkesztőben például csak a végeredményként kapott szöveg a lényeg, nem a visszavonások és visszaállítások, beírások sorrendje. Erre megfelelőbb a modell-nézet-adapter használata.

A modell és a nézet elkülönítése lehetővé teszi, hogy a nézetek egymástól is függetlenül használhassák ugyanazt a modellt ugyanazon vagy ugyanolyan osztályú adapteren keresztül. Például a modell és az adapter kiszolgálhat különböző technológiájú nézeteket, mint Qt GUI, Microsoft MFC GUI, GTK+ GUI, Microsoft .NET GUI, Java Swing GUI, Silverlight weboldal és AJAX. A modellnek nem kell tudnia arról, hogy milyen információt kapnak róla, és az adapter vagy adapterosztály elrejti, hogy több nézettel kommunikál, és hogy azok milyen technológiával működnek. Egy generikus felhasználóként jelennek meg.

Hasonlóan, a nézetnek nem kell tudnia az adatok reprezentációjáról, mivel nem kommunikál közvetlenül a modellel. Így a modell használhat különféle adatbázis rendszereket, mint különböző SQL adatbázis szerverek beépíthető üzleti logikával (PostgreSQL, Sybase SQL Server, vagy Microsoft SQL Server), anélkül, mint MySQL, vagy nonSQL RDF adatbázissal.

Az adapterek reprezentálhatnak üzleti logikát, így az üzleti logika cserélése megoldható az adapter cseréjével, míg a többi rész ugyanaz marad. Például az Amerikai Egyesült Államok különböző államaiban más szabályok érvényesek.

Jegyzetek szerkesztés

  1. [1] Archiválva 2016. március 4-i dátummal a Wayback Machine-ben Sun's mediating-controller MVC

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a Model–view–adapter című angol Wikipédia-szócikk 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.