Design Patterns
Design Patterns are widely applicable techniques in programming. They are at a higher level of complexity than data structures, & they probably cannot be implemented in a library. They are more application-specific than data structures or other concepts which can be implemented generically in a library.

The original & possibly definitive source of information about design patterns is the infamous book Design Patterns by Gamma, Helm, Johnson, & Vlissides. They & their book are often affectionately or hatefully referred to as The Gang of Four (GoF).

Design patterns definitely contain some good ideas, but they also have been the motivation behind some horrible design decisions. They have inspired articles with titles such as "The Singleton Design Pattern Considered Harmful" and "Design Patterns Considered Harmful".

One design pattern is the Visitor Design Pattern. It's implementation might be a non-issue in Lisp with CLOS.

See Norvig's Design Patterns in Dynamic Languages for information about how Design Patterns may apply to Common Lisp. See also ftp://publications.ai.mit.edu/ai-publications/2002/AIM-2002-005.pdf for a more indepth discussion.


document