NAME: Pattern Language CATEGORY: Context Setting
Patterns
- CONTEXT: You are trying to use the "pattern form" to
describe a procedure with many steps or a complex solution to a complex
problem. Some of the steps may only apply in particular circumstances. There may be alternate
solutions to parts of the problem depending on the
circumstances. A single pattern is insufficient to deal with the complexity at hand.
- PROBLEM: How do you describe the solution such that it is
easy to digest and easy to use parts of the solution in different circumstances?
- FORCES:
- A single large solution may be too specific to the
circumstance and impossible to reuse.
- A complex solution may be hard to describe in a single
pattern. A "divide and conquer" approach may be
necessary to make the solution tractable.
- Factoring the solution into a set of reusable steps can be very
difficult. Once factored, the resulting
pieces may depend on one another to make any sense.
- Other pattern languages may want to refer to parts of the
solution; they require some sort of "handle" for
each of the parts to be referenced.
- SOLUTION:
- Capture each problem/solution pair as a pattern within a
larger pattern language.
- Each pattern should solve a specific problem within
the
shared context of the language. Strive to ensure that each pattern could conceivably be used alone
or with a limited number
of patterns from the
language.
- RATIONALE: This pattern language is itself an example of tackling the complex problem of writing
patterns and pattern languages. It presents the solution as a number of patterns each of which describe the solution to a specific smaller problem.
- DIAGRAM: