Help: Design patterns
Christopher Alexander asserts that a design 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" (Alexander et al, 1977,
p.x). This original definition positions a pattern as a high-level
specification of a method of solving a problem by a design that
specifies the context of discussion, the particulars of the problem,
and how these can be addressed by the designated design instruments. In The Timeless Way of Building he elaborates:
Each pattern is a three-part rule, which expresses a relation between a certain context, a problem, and a solution.
As an element in the world, each pattern is a relationship between
a certain context, a certain system of forces which occurs repeatedly
in that context, and a certain spatial configuration which allows these
forces to resolve themselves.
As an element of language, a pattern is an instruction, which shows
how this spatial configuration can be used, over and over again, to
resolve the given system of forces, wherever the context makes it
relevant.
The pattern is, in short, at the same time a thing which happens in
the world, and the rule which tells us how to create that thing, and
when we must create it. It is both a process and a thing; both a
description of a thing which is alive, and a description of the process
which will generate that thing (Alexander, 1979, p 247).
Design patterns have a strict structure, embodied in a
template. Different pattern languages may have different templates, but
most include a combination of these components:
- Name: short, catch and distinctive name for this pattern. Preferably, a popular convention.
- Summary (tag line): short description of the core idea.
- Aim / problem / intent: what is the function that this pattern attempts to achieve?
- Context: When and where is it relevant? What are the constraints that govern it and the necessary conditions for its application?
- Solution scheme: The heart of the pattern, the method of solution described in as much detail as possible without impeding generality.
- Related patterns: Links to other patterns which interact, extend, abstract or conflict with this pattern.
The context includes any relevant distinctions: place, time, social and organizational setting, etc.
2 Help topics
2.1 creating a new pattern
2.2 editing a pattern
2.3 etc.