Pattern : PATTERN LANGUAGES
- 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.
- EXAMPLE : 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.