Design Patterns Reconsidered
This presentation has been given on the No Fluff Just Stuff conference tour and also at the JavaOne 2008 conference (in different forms).
Summary
One of the many things I love about working on software is the process of design. I love the feeling of rolling a problem around in your head or hashing it out with someone at a whiteboard and contemplating alternate ways to structure the solution at the level of pure thought stuff.
This talk has two parts. In the first, we look at what patterns are, why some people criticize design patterns, and why these criticisms do not eliminate the usefulness of patterns. In the second part, we will look at a few specific patterns in Java and more deeply consider them as problems in context with multiple possible solutions. The intent is to emphasize that no pattern has any one particular implementation and that they are really solution ideas of common problem contexts.
Materials
- JavaOne 2008 slides
- JavaOne Online: Watch (audio/slides) (requires SDN registration)
- JavaOne Online: PDF (requires SDN registration)
- JavaOne Online: MP3 (requires SDN registration)
References
Books:
Links:
- Christopher Alexander’s web site – Alexander’s book on Pattern Languages in architecture was the inspiration for the patterns movement in software
- Wikipedia on design patterns – an ok starting point
- Wikipedia on the Sapir-Whorf hypothesis – the idea that the language we use defines the thoughts we can think
- Eskimo words for snow – the most famous (and bogus) example of Sapir-Whorf
- Design Patterns Aren’t – M.J. Dominus’s presentation criticizing design patterns
- Design Patterns – The Cult to Blame ? – Debasish Ghosh
- Design Patterns in Dynamic Programming – Peter Norvig’s presentation on how design patterns change or disappear in dynamic languages
- Design Patterns are Code Smells – Stuart Halloway’s criticism of design patterns as missing language features
- Are Design Patterns Missing Language Features? – many interesting comments and discussion on the topic
- Rethinking Design Patterns – Jeff Atwood’s take on design patterns
- Scala design patterns
- More Scala patterns
- Singleton Considered Stupid – Steve Yegge on singletons
- my thoughts on singleton
- Hamlet d’Arcy on closures and template method
- my thoughts on template method
- Interesting post on closures and visitors
- Philip Wadler’s statement of the “expression problem”
- A paper considering various solutions to the “expression problem” in Java
- Some interesting ideas on the visitor pattern
- my thoughts on the visitor pattern
- JSR 269 visitors
- Design pattern reference


Hi! My name is Alex Miller and I live in St. Louis. I write code for a living and currently work for