You are on page 1of 1

Pattern Purpose

AbstractFactory many"platforms",oneinterfaceforcreatingafamilyofproducts
Builder parseacomplexrepresentation,createoneofseveraltargets
FactoryMethod dynamic(decoupled)creationthroughinheritance
Prototype dynamic(decoupled)creationthroughdelegation
Singleton singleinstanceenforcement,lazyinitialization,globalaccess

Adapter impedancematchalegacycomponenttoanewsystem
Bridge decoupleinterfacefromimplementationmovebeyondencapsulationtoinsulation
Composite recursivecompositionbycouplingtheaggregateclasstoacommonabstraction
Decorator recursivewrapperingthatsupportsclientspecifiedincrementalembellishment
Facade simplewrapper(orsurrogate)toacomplicatedsubsystem
Flyweight usesharingtooptimizetheuseoflotsof"little"objects
Proxy useanextralevelofindirectiontosupportdistributed,controlled,orintelligentaccess

ChainofRespon OOlinkedlistlaunchandleaverequestswithasimpleprocessingpipeline
Command OOcallbackpromoteamethodinvocationonanobjectto"fullobjectstatus"
Interpreter map:domain=>language=>grammar=>hierarchicalOOdesign
Iterator aninterfacethatsupportsthedecouplingofalgorithmsanddatastructures
Mediator decouplemanypeersbypromotingmanytomanyrelationshipsto"fullobjectstatus"
Memento OOundo/rollbackexternalizeanobject'sstatetoanopaqueobject
Observer decoupleindependentsender(model)fromdependentreceivers(views)
State OOfinitestatemachinestateinheritancehierarchy,currentstatewrapper
Strategy legowarealgorithmpublishinterfaceinabaseclass,buryimplinderivedclasses
TemplateMethod commonalgorithmandplaceholdersinbaseclass,variablestepsinderivedclasses
Visitor openforextension,closedformodificationaddmethodsw/ochangingexistingclasses

You might also like