Previous | Beginning | Next
Notes
Good patterns are recurring solutions to similar problems that are known to work, i.e. they are empirically based and drawn from experience rather than invented for their own sake. That they are documented pieces of successful design experience and not single instances of design is a significant distinction from things that are simply pieces of "neat design" [Coplien1996]: A pattern is a piece of literature that describes a design problem and a general solution for the problem in a particular context. Patterns originated in architecture and the design of human centred environments, in the work of Christopher Alexander [Alexander+1977, Alexander1979], with an emphasis more on practice and prior art than invention. Alexander defines the essential content of any pattern:
We know that every pattern is an instruction of the general form: At heart, a pattern is a descriptive text that describes a problem within a context, the forces that must be balanced in evaluating the solution, and a configuration that defines a general solution. It names and documents the problem, solution and rationale. As such patterns are reusable concepts that can shape a design. The seminal design patterns book [Gamma+1995] has perhaps done more than any other to popularise the use of patterns in OO design. However, there is a lingering perception by some developers that the patterns in the "Gang of Four" book are all that there are in this rich field, and that this level of design is their only context of relevance. That this is not the case can be quickly dispelled by picking up any of the PLoPD books [PLoP1995, PLoP1996, PLoP1998], surfing [Hillside], or browsing any of a number of the object magazines and journals.
|