11 A Billion Different Implementations
Like snowflakes, the human pattern is never cast twice.We are uncommonly and marvelously intricate inthought and action, our problems are most complexand, too often, silently borne.
Alice Childress (1887–1948), anthropologist
This chapter explores the process side of pattern languages. So far we have seen examples of individual patterns and groups of patterns applied through narrative sequences, but this chapter gives the first coverage of how pattern languages are applied. We also show how pattern languages compare with other approaches, such as refactoring, agile development, and product-line architectures, to help improve software understanding, sustainability, and reuse.
11.1 One Size Does Not Fit All
In Chapter 2 we showed how each stand-alone pattern can be implemented in many different ways without ever being the same twice. This observation confirmed our claim that there is no such thing as a globally applicable and universally generic reference implementation for a pattern. This statement also holds true for pattern languages, for the simple reason that they connect many different patterns, each of which can be realized in a million different ways. In fact, the solution space spawned by a pattern language is even larger than the simple sum of all solution spaces of its constituent patterns. If a stand-alone pattern has a ‘million different implementations,’ therefore, a pattern language can certainly be instantiated in a ‘billion ...