architect-handbook

Software Architect Handbook

View on GitHub

Pattern

There’s no generally accepted definition of a pattern.

“Each 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.” - Christopher Alexander, architect.

Once you need the pattern, you have to figure out how to apply it to your circumstances. A key thing about patterns is that you can never just apply the solution blindly.

“I like to say that patterns are “half baked,” meaning that you always have to finish them off in the oven of your own project.” - Martin Fowler

Patterns aren’t original ideas; they’re very much observations of what happens in the field. As a result, patterns get “discovered” rather than “invented”.

For an experienced designer, the value of the pattern is not that it gives you a new idea; the value lies in helping you communicate your idea. The result is that patterns create a vocabulary about design.