A Solution to a Recurring Problem in a Context.
Forces push you toward and away from various solutions.
Patterns show how to resolve the forces (minimum stress)
Capture expert knowledge in a domain as a means of transmission
More than an Idiom
Not a process
The context affects the nature of the problem so that a templated solution is not appropriate
Focus is on the forces
Exist (only) in Pattern Languages
(Unified systems of related patterns)
Are used with other patterns in the language
Must be applied sequentially (not all at once)
The forces change when you apply a pattern
Overarching purpose is to make the world a better place in which to live.
Different formats for expression (GOF, Alexandrian)
GOF is considered old fashioned now. The community has progressed greatly
Jim (Cope) Coplien on patterns (Patterns discussion list, 5/6/99)
An Alexanderian pattern is an element in a pattern language; being written in pattern form, and being widely applied, doesn't make something an Alexanderian pattern. That an Alexanderian pattern is an element in a pattern language implies many more properties:
- it is structural, defining a field of spatial relations (so
something that is simply a process to do something cannot be a pattern);
- it is generative (plaid pants are a common pattern among golfers, but since they're not generative, they're not Alexanderian patterns);
- it is not only something that is broadly applied, but more importantly something that reflects a community consensus about what's important and useful
- it states preconditions for individual health and social life in a community
- it is an encapsulation of forces in a pattern language
The concept is actually quite hard, which is probably the reason that most people use the term "pattern" casually for dozens of simplified variants of the concept, much as there are problems with Gin and Tonics being normative in Hitchhiker's Guide to the Galaxy...