Throughout this book, we have presented code that you can re-use in many applications. The decision about whether to create a library for some of this code may be personal in some instances and practical in others, but the fact is that by re-using code you can save yourself quite a bit of time. Code that you re-use has the benefits of being well-tested and proven, and likely very efficient.
In this appendix, we discuss patterns and consolidate some of them into a single location that you can use to quickly find information. We'll do this by:
Calling out the patterns that we've used in this book
Providing pointers about where you can find more patterns
Patterns as a means for describing a particular problem space were first introduced in architecture by an architect named Christopher Alexander. Although initially described to address ways to solve problems in physical architecture, Alexander's work has been tailored into other fields such as software development. Patterns provide a formalized mechanism for describing the problem, including the intent of the pattern, and how it solves the problem in question.
As with architecture, a pattern in software development is an approach to solving a particular problem. The pattern isn't necessarily prescriptive — in many cases it provides only a guideline for solving a problem as there is often more than one way to solve it. What the pattern provides, however, ...