Interceptor
A számítógép-programozásban az interceptor programtervezési mintát akkor használják, ha a keretrendszer illetve programrendszer változtatni akar szokásos működési ciklusán. Például egy webszerver megkap egy URI-t a böngészőből, megkeresi a fájlt a lemezen, megnyitja a fájlt, és tartalmát elküldi a böngészőnek. Mindegyik lépés megváltoztatható, például az URI leképezése fájlnévre, vagy egy lépés beiktatásával, ami további feldolgozást végez a fájl tartalmán.
A minta kulcs aspektusai, hogy a változás transzparens, és automatikusan működésbe lép. Lényegében a rendszer többi részének nem kell tudnia a változásról, és úgy működhetnek, ahogy korábban. Ennek megkönnyítésére a változásokhoz meg kell valósítani az interceptort, ami egy előre definiált interfész, és ezt egyfajta diszpécser mechanizmusba regisztrálni. A környezet objektumok lehetővé teszik a keretrendszer belső állapotához való hozzáférést.[1]
Tipikus felhasználók a webszerverek,[2] az objektum-[3] és üzenetorientált[4] köztes rétegek.
A megvalósításra példa a Java EE részeként a javax.servlet.Filter.
Hasonló helyzetek megoldására alkalmas az aspektusorientált programozás, aminek nincs szüksége a minta összetevőire.
Jegyzetek
szerkesztés- ↑ Schmidt, Stal, Rohnert & Buschmann: "Pattern-Oriented Software Architecture Vol.2: Patterns for Concurrent and Networked Objects", pp. 109--140, April 2001. [2017. december 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. december 22.)
- ↑ Apache Software Foundation: Tomcat 6.0 Channel Interceptor Reference, accessed 2009-Nov-24
- ↑ OMG, "CORBA v3.1, Part I: Interfaces", Chapter 16 "Portable Interceptors", January 2008
- ↑ E. Curry, D. Chambers, and G. Lyons, “Extending Message-Oriented Middleware using Interception”, presented at Third International Workshop on Distributed Event-Based Systems (DEBS '04), ICSE '04, Edinburgh, Scotland, UK, 2004.. [2011. július 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. december 22.)
Források
szerkesztésDouglas C. Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann. Pattern-oriented Software Architecture 2 – Pattern for Concurrent and Networked Objects. Chichester: Wiley (2000). ISBN 0471606952
Fordítás
szerkesztésEz a szócikk részben vagy egészben az Interceptor pattern 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.