Interceptor

Példa interceptor használatára

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.

Tipikus felhasználók a webszerverek, az objektum- és üzenetorientált 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

  1. ↑ "Schmidt, Stal, Rohnert & Buschmann: "Pattern-Oriented Software Architecture Vol.2: Patterns for Concurrent and Networked Objects", pp. 109--140, April 2001". 2017. december 23. dátummal az eredeti címről archiválva. Hozzáférés: 2017. december 22.
  2. ↑ Apache Software Foundation: Tomcat 6.0 Channel Interceptor Reference, accessed 2009-Nov-24
  3. ↑ OMG, "CORBA v3.1, Part I: Interfaces", Chapter 16 "Portable Interceptors", January 2008
  4. ↑ "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" (PDF). 2011. július 26. dátummal az eredeti (PDF) címről archiválva. Hozzáférés: 2017. december 22.

Források

Douglas C. Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann (2000). Pattern-oriented Software Architecture 2 – Pattern for Concurrent and Networked Objects. Chichester: Wiley. ISBN 0471606952.{{cite book}}: CS1 karbantartás: több név: szerzőfelsorolás (link)

Fordítás

Ez 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.