Design Patterns and Refactoring
Table of Contents
(The word "design" is used here as an abbreviation for Object Oriented Design.)
1 Design Patterns
- A design pattern is a solution template for problems of a certain pattern.
- A pattern codifies expert knowledge. Four essential elements:
- Pattern name: increases vocabulary of designers
- Problem: intent, context, when to apply
- Solution: UML-like structure, abstract code
- Consequences: results and tradeoffs
1.1 Design Patterns
- Examples of Pattern Names
- Abstract Factory | Factory Method | Singleton | Adapter |
- Flyweight | Bridge | Observer | Mediator | Strategy | Visitor |
- Design Patterns PDF Slides from UT Austin Dr Miryung Kim
- ./design-patterns-norvig-1996.pdf
- http://en.wikipedia.org/wiki/Software_design_pattern Required Visit/Reading the individual patterns also.
- http://www.tutorialspoint.com/design_pattern/
2 Broader Views
- Peter Norvig, Design Patterns in Dynamic Languages (slides), http://www.norvig.com/design-patterns/ (Dr Norvig is now (2013) Director of Research at Google.) Required Reading.
- http://www.paulgraham.com/icad.html "Revenge of the Nerds", Paul Graham, 2002. Required Reading.
3 References
- Several references embedded above.
- GoF ("Gang of Four"): Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, "Design Patterns: Elements of Reusable Object-Oriented Software", First edition 1994. Highly Recommended.
- https://sourcemaking.com/ has most of the above materials presented well.