If we had to summarize design patterns in a single sentence, we’d say that they’re tools for coping with constant change in software design and development. When you look at the different design patterns in this book, they’re optimized to allow the programmer to make changes and reuse most of the software developed. The key concepts are change and flexibility. That same theme will be repe…