Design Patterns Revisited: Taking advantage of dynamic, reflective languages
Salt Lake Software Symposium
Salt Lake City · August 19 - 20, 2005
About this Presentation
(3 Hour Session)
Attendees should attend the Introduction to Reflection talk, or have some experience using reflection or metaprogamming in a reflective language such as Java, Objective-C, Smalltalk, Python, or Ruby. Familiarity with the GOF book is helpful but not required.
Design patterns are recurring solutions to problems that consistently appear in software development. However, this does not mean that design patterns cannot be “solved”, i.e. converted into language or library features. In fact, most of the original design patterns can be solved using dynamic language features such as reflection.
This talk covers specific design patterns, and shows multiple implementations of each, demonstrating how reflection and other dynamic techniques make the patterns invisible, freeing you to concentrate on solving new problems.
In part A I cover
• Abstract Factory
• Almost-Real Objects (a variant of mock objects)
• Singleton
In part B I cover
• Iterator
• Flyweight
• Observer
• Dynamic Agile Development

President of Cognitect
Stuart Halloway is a founder and President of Cognitect, Inc. (www.cognitect.com). He is a Clojure committer, and a developer of the Datomic database.
Stuart has spoken at a variety of industry events, including StrangeLoop, Clojure/conj, EuroClojure, ClojureWest, SpeakerConf, QCon, GOTO, OSCON, RailsConf, RubyConf, JavaOne, and NFJS.
Stuart has written a number of books and technical articles. Of these, he is most proud of Programming Clojure.
Learn more about Stu's presentations on his wiki.