Key Relationships
-
Adapter - Bridge* - Composite - Decorator - Facade - Flyweight* - Proxy
These patterns are classified as
structural design patterns.
[GoF, p10]
-
Adapter
provides an alternative interface
for an (already existing) class or object.
-
Bridge*
lets an abstraction and its implementation
vary independently.
-
Composite
composes (already existing) objects
into a tree structure.
-
Decorator
provides additional functionality
for an (already existing) object.
-
Facade
provides an unified interface
for (already existing) objects
in a subsystem.
-
Flyweight*
supports large numbers of fine-grained
objects efficiently.
-
Proxy
provides additional functionality
when accessing an (already existing) object.
Background Information
-
Structural design patterns
(shown in the second row of the main menu)
are concerned with providing alternative behavior for
already existing classes or objects (without touching them).
-
Bridge* and
Flyweight*
should be classified as behavioral design patterns
(shown in the third row of the main menu)
that are concerned with
designing related classes and interacting objects
having a desired behavior.