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,Apache Software Foundation: Tomcat 6.0 Channel Interceptor Reference, accessed 2009-Nov-24 az objektum-OMG, "CORBA v3.1, Part I: Interfaces", Chapter 16 "Portable Interceptors", January 2008 é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

Források

Fordítás

Kategória:Programtervezési minták