diff --git a/README.md b/README.md index cb11999e5..4806b01c6 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,19 @@ Presentation Tier patterns are the top-most level of the application, this is co * [Intercepting Filter](#intercepting-filter) +## Intercepting Filter [↑](#list-of-design-patterns) +**Intent:** Provide an interfa + +![alt text](https://github.com/iluwatar/java-design-patterns/blob/master/abstract-factory/etc/abstract-factory_1.png "Abstract Factory") + +**Applicability:** Use the Intercepting Filter pattern when +* Used when system uses pre-processing or post-processing requests +* a family of related product objects is designed to be used together, and you need to enforce this constraint +* you want to provide a class library of products, and you want to reveal just their interfaces, not their implementations + +**Real world examples:** +* [javax.xml.parsers.DocumentBuilderFactory](http://docs.oracle.com/javase/8/docs/api/javax/xml/parsers/DocumentBuilderFactory.html) + ## Abstract Factory [↑](#list-of-design-patterns) **Intent:** Provide an interface for creating families of related or dependent objects without specifying their concrete classes.