Akció-tartomány-válaszoló
Az akció-tartomány-válaszoló (ADR) egy architekturális programtervezési minta, amit Paul M. Jones javasolt a modell-nézet-vezérlő minta finomítására,[1] mivel jobban illeszkedik a webes alkalmazásokhoz. Jobban alkalmazkodik a HTTP kérés-válasz folyamatához, mivel a modell-nézet-vezérlőt eredetileg desktop alkalmazásokhoz fejlesztették ki.
Komponensek szerkesztés
A mintának a modell-nézet-vezérlőhöz hasonlóan három komponense van:
Összehasonlítás a modell-nézet-vezérlővel szerkesztés
Az akció-tartomány-válaszoló nem ugyanaz, mint a modell-nézet-vezérlő (MVC), habár vannak hasonlóságok.
- Az ADR tartományának szerepe hasonlít az MVC modelljéhez. A különbség a viselkedésben rejlik: az MVC-ben a nézet küldhet információt a modellnek, míg az ADR-ben a tartomány csak az akcióval kommunikál.
- A webes MVC-ben a nézetet csak a vezérlő használja, hogy létrehozza a választ, amit a vezérlő küldés előtt módosíthat. Az ADR-ben a teljes kimenetet a válaszoló alkotja meg, az akció csak elküldi neki a tartomány válaszát.
- Az MVC vezérlők rendszerint tartalmaznak néhány olyan metódust, amik egy osztályba téve további logikát igényelnek, mint akcióelőkészítő és lezáró hook függvényeket. Az ADR akcióit ellenben egy osztály, vagy zárvány alkotja. Az akció és a tartomány kommunikációja hasonlít a vezérlő és a modell interakciójára, kivéve, hogy az akció nem kommunikál sablonokkal vagy egy nézettel, hanem ezt a válaszoló megteszi helyette.
Jegyzetek szerkesztés
- ↑ Action-Domain-Responder: A Tentative MVC Refinement. paul-m-jones.com
Források szerkesztés
- Paul M. Jones' original proposal of ADR
- Implementing ADR in Laravel, an implementation of the pattern in the Laravel PHP framework.
Fordítás szerkesztés
Ez a szócikk részben vagy egészben az Action–domain–responder 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.