I ::= "title: Object-oriented Design Patterns\n" ^ "author: Dimitri De Franciscis <megadix@yahoo.it>\n" ^ "language: english\n" ^ "status: refinable\n" ^ "topic: misc\n" ^ "audience: poor OO programmers\n" ^ "created: 26/03/2004" ; S ::= Adjective Noun; Adjective ::= "Business" | "Data Access" | "Fast Lane" | "Composite" | "Front" | "Intercepting" | "Session" | "Transfer" | "Value List" | "View" | "Half" | "Immutable" | "Dynamic" | "Virtual" | "Model" | "Layered" | "Null" | "Template"; Noun ::= "Delegate" | "Abstract" | "Entity" | "View" | "Object" | "Reader" | "Controller" | "Filter" | "Locator" | "Facade" | "Handler" | "Helper" | "Call" | "Interface" | "Proxy" | "Builder" | "Method" | "Prototype" | "Singleton" | "Pool" | "Marker" | "Factory" | "Bridge" | "Flyweight" | "Service" | "Adapter" | "Listener" | "Decorator" | "Cache" | "Command" | "Strategy" | "Producer" | "Consumer";