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, 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 A mintának a modell-nézet-vezérlőhöz hasonlóan három komponense van: Az akció fogadja a HTTP kéréseket, az URL-eket és a metódusokat. A bemenet felhasználásával kommunikál a tartománnyal, majd miután a tartomány válaszolt, a választ továbbítja az egyik válaszolónak. A válaszoló megalkotja a választ, majd átadja az akciónak visszaküldésre. Összehasonlítás a modell-nézet-vezérlővel 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

Források Paul M. Jones' original proposal of ADR Implementing ADR in Laravel, an implementation of the pattern in the Laravel PHP framework.

Fordítás

Kategória:Programtervezési minták Kategória:Architekturális minták