Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Beyond the Gang of Four"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
  > Technical Program > Tutorials > All Tutorials

 : Languages and Development : Sunday : Sunday Full-Day Tutorials (8:30 - 17:00)

Beyond the Gang of Four

Meeting Room 12
Sunday, 8:30, full day


Kevlin Henney, Curbralan Limited:  Kevlin Henney is an independent consultant and trainer. The focus of his work is in programming languages, OO, CBD, UML, patterns, and software architecture. At various times he has been a regular columnist for C/C++ Users Journal (online), Application Development Advisor (UK), JavaSpektrum (Germany), Java Report and C++ Report. He is also on the advisory board for Hillside Europe, was the program chair for EuroPLoP 2003, and is a popular speaker at conferences in the US and Europe.

Tutorial number: 18

When software developers mention design patterns, the chances are that they are talking about Design Patterns, the classic book by the Gang of Four, rather than design patterns in general. Even when they are talking about the pattern concept, as opposed to specific patterns, they often think in terms of the form and idea presented in GoF, and rarely beyond.

However, the practice of software design is a far larger space than can be covered by a modest vocabulary of 23 patterns. Nor is the pattern concept that is useful in designing software identical with the GoF view. Since the publication of the seminal work by GoF in 1994, a great deal of research and practice in patterns has led to a better understanding of both the pattern concept and the strengths and weaknesses of the GoF patterns themselves.

This talk revisits the GoF patterns, reflects on them, deconstructs them, and re-evaluates them from the practitioner's perspective: why creational patterns such as Abstract Factory and Builder are missing a vital ingredient to be proper parts of an architectural vocabulary; why Singleton decreases a system's flexibility and testability; why Iterator is not always the best solution for traversing aggregates; ...; and what you can do about it.

Intermediate: Sound knowledge of the pattern concept and the GoF patterns.