Skip to content
Working code for the Design Patterns book from the Gang of Four.
C++ CMake C
Branch: master
Clone or download

README.txt

This is my implementation of the Design Patterns from the book

  'Design Patterns: Elements of Reusable Object-Oriented Software'
  Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
  ISBN 0-201-63361-2
  Copyright 1995
  21th Printing, November 2000

The webpage and official 'code' for this book were previously available from

  [1] http://st-www.cs.illinois.edu/users/patterns/DPBook/DPBook.html
  [2] http://st-www.cs.illinois.edu/patterns/dpbook/Source.html

(TODO: link [1] and [2] no longer work.  Does anybody know the new location of
 the 'official' source code for the book?)

The nice thing about the book is that it is... well... not complete :-) To come
to a complete working implementation of all the Design Patterns presented in the
book, and be able to play with them, requires some extra coding.  The goal of
this project is to actually provide the missing pieces and come to something
that will compile and run cleanly.

On the following websites, I have found some more C++ code that helped me
complete everything:

  [3] http://www.c-jump.com/CIS75/Week11/
  [4] http://www.c-jump.com/Download/Patterns/Prototype/html/
  [5] https://code.google.com/p/basic-algorithm-operations/source/browse/trunk/DP
  [6] http://dislab.hufs.ac.kr/wiki/Lecture/Design_Pattern
  [7] http://blog.csdn.net/joey_zoy/article/details/5610810
  [8] https://github.com/wangqiang8511/C---Design-Patterns-Examples/

And here are some interesting slides that give some more explanation:

  [9] http://www.cs.toronto.edu/~penny/teaching/csc407/

A more modern C++11 approach using Boost libraries was given in a talk
by Tobias Darm given here:

  http://www.infoq.com/presentations/gof-patterns-c-plus-plus-boost

An interview from 2009 with the GoF authors is given here:

  http://www.informit.com/articles/article.aspx?p=1404056

A dependency analysis and refactoring of the Gang of Four examples can
be found at

  https://github.com/zebmason/GoFRefactored/blob/master/README.md

Feel free to send me your comments, suggestions and improvements in the form
of a git pull request!
You can’t perform that action at this time.