Design Patterns in the VCL -- Glossary
[ Start Here | Outline | Glossary | Links ]
A
B
C
- Context
- The setting in which a pattern may be applied. In particular, the
context enumerates the forces which make up the
problem which the pattern addresses, and makes clear
the dynamic tension which those forces create.
The context of a pattern should clearly specify the conditions under which it applies: generally this means detailing the forces and any prerequisite conditions.
The context may also refer to other patterns, both those which work to resolve similar sets of forces and those whose application might contribute to the current context. Patterns which highlight such inter-connections form a pattern language.
- Consequences
- The results of applying a pattern, both pro and con. For example,
many design patterns increase the flexibility of a software design by
introducting one or more additional layers of indirection (e.g., virtual
methods, highly-normalized database schemae). In some applications,
this indirection may result in unacceptable performance; the
pattern's consequences should make such trade-offs clean.
Like the context, the consequences may also refer to other patterns, in particular those likely to apply to the design as transformed by the current pattern. Patterns which highlight such inter-connections form a pattern language.
D
- Dynamic Tension
- Conflicts between the forces which make up the context of a pattern. The pattern resolves these confilcts, either by satisfying one or more of them, or by creating an equilibrium among them.
E
F
- Forces
- The various pressures which bear on a given design problem, whose conflicting demands create the dynamic tension which a pattern attempts to resolve, E.g., in a product development cycle, deadline pressure and non-core functionality are forces which create problems for the product management team.
G
H
I
J
K
L
M
N
O
P
- Pattern
- (oversimplifying) A solution to a recurring problem, based on the
(also recurring) context in which the problem
arises.
Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. -- Christopher Alexander, A Pattern Language, p. x.
- Pattern Language
- A densely-interconnected set of patterns for a given family of designs. The patterns in a pattern languate produce, through their collaborations, structures which have emergent qualities, i.e., those which might not be evident from the application of any single pattern.