Design patterns: abstraction and reuse of object-oriented design (2002)

by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Venue:In Software pioneers, Manfred Broy and Ernst Denert (Eds.). Springer-Verlag