Content deleted Content added
m Bot: Migrating 1 interwiki links, now provided by Wikidata on d:q1665924 |
Citation bot (talk | contribs) Alter: title. | Use this bot. Report bugs. | Suggested by Whoop whoop pull up | #UCB_webform 25/134 |
||
(10 intermediate revisions by 7 users not shown) | |||
Line 1:
[[File:Interceptor.VSD Example.png|thumb|upright=1.6|Example of an interceptor]]
In the field of [[software development]], an '''interceptor pattern''' is a [[software design pattern]] that is used when software systems or [[software framework|framework]]s want to offer a way to change, or augment, their usual processing cycle. For example, a (simplified) typical processing sequence for a web-server is to receive a URI from the browser, map it to a file on disk, open the file and send its contents to the browser. Any of these steps could be replaced or changed,
Key aspects of the pattern are that the change is ''transparent'' and used ''automatically''. In essence, the rest of the
== Uses
Typical users of this pattern are web-servers<ref name="tomcat">[http://tomcat.apache.org/tomcat-6.0-doc/config/cluster-interceptor.html Apache Software Foundation: Tomcat 6.0 Channel Interceptor Reference, accessed 2009-Nov-24]</ref> (as mentioned above), object-<ref name="CORBA-PI">[http://www.omg.org/spec/CORBA/3.1/ OMG, "CORBA v3.1, Part I: Interfaces", Chapter 16 "Portable Interceptors", January 2008]</ref> and [[message-oriented middleware]]<ref name="MOM">
An example of implementation of this pattern is the ''javax.servlet.Filter'' interface, which is part of [[Java Platform, Enterprise Edition]].
▲Typical users of this pattern are web-servers<ref name="tomcat">[http://tomcat.apache.org/tomcat-6.0-doc/config/cluster-interceptor.html Apache Software Foundation: Tomcat 6.0 Channel Interceptor Reference, accessed 2009-Nov-24]</ref> (as mentioned above), object-<ref name="CORBA-PI">[http://www.omg.org/spec/CORBA/3.1/ OMG, "CORBA v3.1, Part I: Interfaces", Chapter 16 "Portable Interceptors", January 2008]</ref> and message-oriented middleware<ref name="MOM">[http://www.edwardcurry.org/web_publications/curry_DEBS_04.pdf 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.]</ref>
▲An example of implementation of this pattern is the ''javax.servlet.Filter'' interface, which is part of [[Java Platform, Enterprise Edition]].
[[Aspect-oriented programming]] (AOP) can also be used in some situations to provide the capability of an interceptor, although AOP doesn't use the elements typically defined {{Clarify|date=May 2012}} for the interceptor pattern.
Line 14 ⟶ 13:
== References ==
{{reflist}}
{{Design Patterns Patterns}}
{{DEFAULTSORT:Interceptor Pattern}}
[[Category:
[[Category:Concurrent computing]]
[[Category:Software design patterns]]
|