- "GoF" book -- "Design Patterns: Elements of Reusable Object-oriented Software" (by the "Gang of Four" (GoF): Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides).
- A "design pattern" describes a recurring code-design problem, and then describes an established, reliable solution to the problem.
- More specifically, a design pattern is "a description of communicating objects and classes that are customized to solve a general design problem in a particular context."
- From GoF: "A design pattern identifies [a system's] participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Each design pattern focuses on a particular object-oriented design problem or issue. It describes when it applies, whether it can be applied in view of other design constraints, and the consequences and trade-offs of its use."
- Design patterns are not expected to be used verbatim...each pattern can and should be customized for the particular situation.
- For GoF implementation examples in Java, see Design Patterns in Java Reference and Example Site