Design Patterns: Elements of Reusable Object-Oriented Software
by Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Hardcover, Addison-Wesley, ISBN 0201633612 (0-201-63361-2)
More editions of Design Patterns: Elements of Reusable Object-Oriented Software: