The Design Patterns book presents 24 time-tested patterns that consistently appear in well-designed software systems. Each pattern is presented with a description of the design problem the pattern addresses, as well as sample implementation code and design considerations.
This paper explores how the patterns from the “Gang of Four”, or “GOF” book, as it is often called, appear when similar problems are addressed using a dynamic, higher-order, object-oriented programming language. Some of the patterns disappear – that is, they are supported directly by language features, some patterns are simpler or have a different focus, and some are essentially unchanged.
Peter Norvig describes design patterns as:
- Descriptions of what experienced designers know (that isn’t written down in the Language Manual)
- Hints/reminders for choosing classes and methods
- Higher-order abstractions for program organization
- To discuss, weigh and record design tradeoffs
- To avoid limitations of implementation language.