Design patterns are templates on how to build software, and will often cover areas you had not considered. If you are building something fairly generic, like a web application or a cache, chances are there are a number of mature design patterns to choose from.
You are probably already using a number of basic design patterns each day without realizing their names. Before development starts, ask around and do a quick search on the Internet to make sure the module you need isn't already a beautifully documented pattern.
In addition to formal design patterns, there are also informal coding patterns which rarely get documented.
This chapter is designed to cover both kinds of pattern, not to describe the pattern structure but more how to use them effectively.