The interceptor design pattern allows logic to be inserted before, during or after the execution of a piece of code, such as a method.