W. Kandinsky, Structure Joyeuse
Software Patterns
- What is a pattern?
- From "The Timeless Way of Building" by Christopher Alexander.
- 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.
- We group patterns into three categories
- Architectural patterns
- An architectural pattern expresses a fundamental structural organization schema for software systems.
- Design Patterns
- Idioms