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.

Példa interceptor használatára

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.

Douglas 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é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.