Short works

Books : reviews

Erich Gamma, Richard Helm, Ralph E. Johnson, John Vlissides.
Design Patterns: elements of reusable object-oriented software.
Addison Wesley. 1995

rating : 2 : great stuff

This was one of the first, and is still one of the best, books to take Christopher Alexander's ideas of a Pattern Language from architecture, and apply it to object oriented software design.

The book has a large introductory motivational example of how to use patterns in software design: the case study is that old chestnut, a text editor, brought to life by the skillful writing and innovative way of describing the design.

The bulk of the book is a Pattern Catalogue, documenting 23 creational, structural, and behavioural patterns. A beauty of Alexander's Pattern Language is that it provides a truely useful documentation structure, including the problem solved by the pattern, the solution itself, and the consequences and trade-offs of using the pattern.

Design Patterns is a must for the reference library of any software designer (object oriented or not). The range of patterns gives a new vocabulary for expressing designs, and a ready-made set of solutions to standard design problems.

1998: I added an (unlimited) 'undo' capability from scratch to the Formaliser structure editor, by instantiating one of the Patterns from this book. I was amazed that it took me less than two days: a testament both to the value of Patterns, and the productivity of Smalltalk.