Description
Authored by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides—collectively known across the computer science discipline as the 'Gang of Four' (GoF)—Design Patterns: Elements of Reusable Object-Oriented Software remains one of the most influential works in the history of software development. Published in the Addison-Wesley Professional Computing Series, this text established a shared taxonomy and systematic methodology for identifying, articulating, and resolving recurring problems in object-oriented system design. Rather than demonstrating language syntax, the authors focus on proven architectural templates that foster maintainability, flexibility, and software reusability across large codebases.
The foundational chapters introduce design patterns within real-world contexts, illustrating their impact through a detailed end-to-end case study on architecting a complex document editor. The core of the volume presents 23 discrete patterns organized across three core classifications: Creational patterns, which abstract the instantiation process; Structural patterns, which govern class and object composition; and Behavioral patterns, which characterize complex control flow and inter-object distribution of responsibilities. Each entry defines the pattern's intent, motivation, applicability, structural UML-style diagrams, participant roles, trade-offs, and practical sample code implemented in C++ and Smalltalk.
Institutional Use
Institutions integrate this foundational volume across degree curricula, research repositories, and enterprise training environments:
- Academic Curricula: Serves as required or primary collateral reading in upper-division undergraduate and graduate courses such as Software Engineering, Advanced Object-Oriented Programming, and Software Architecture.
- Academic & Technical Libraries: Held as a permanent core reference work in university libraries, computer science departmental collections, and institutional research labs.
- Corporate & Professional Training: Standardized reading for software engineering onboarding cohorts, enterprise architecture training programs, and continuing professional education workshops.
Product Details
| ISBN-13 | 9780201633610 |
|---|---|
| ISBN-10 | 0201633612 |
| Edition | 1st edition |
| Authors | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides |
| Publisher | Addison-Wesley Professional |
| Publication date | October 31, 1994 |
| Format | Hardcover |
| Language | English |
| Category | Computer Science & Data |
| List price | $12.99 / copy |
| Min. order | 5 copies |
| Condition | New |
Table of Contents
1. Introduction
- 1.1 What Is a Design Pattern?
- 1.2 Design Patterns in Smalltalk MVC
- 1.3 Describing Design Patterns
- 1.4 The Catalog of Design Patterns
- 1.5 Organizing the Catalog
- 1.6 How Design Patterns Solve Design Problems
- 1.7 How to Select a Design Pattern
- 1.8 How to Use a Design Pattern
2. A Case Study: Designing a Document Editor
- 2.1 Design Problems
- 2.2 Document Structure
- 2.3 Formatting
- 2.4 Embellishing the User Interface
- 2.5 Supporting Multiple Look-and-Feel Standards
- 2.6 Supporting Multiple Window Systems
- 2.7 User Operations
- 2.8 Spelling Checking and Hyphenation
- 2.9 Summary
3. Creational Patterns
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
- Discussion of Creational Patterns
4. Structural Patterns
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
- Discussion of Structural Patterns
5. Behavioral Patterns
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
- Discussion of Behavioral Patterns
6. Conclusion
- 6.1 What to Expect from Design Patterns
- 6.2 A Brief History
- 6.3 The Pattern Community
- 6.4 An Invitation
- 6.5 A Parting Thought
Appendices
- Appendix A: Glossary
- Appendix B: Guide to Notation
- Appendix C: Foundation Classes
- Bibliography
- Index
Key Topics
- Object-oriented software architecture and design principles
- Catalog of 23 classic design patterns across three architectural tiers
- Creational patterns: Abstract Factory, Builder, Factory Method, Prototype, Singleton
- Structural patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Behavioral patterns: Chain of Responsibility, Command, Iterator, Observer, State, Strategy, Visitor
- Principles of loose coupling, interface inheritance, and object composition
- Case study in software architecture: Designing the Lexi document editor
- Implementation trade-offs, pattern selection criteria, and C++/Smalltalk notation
Who This Is For
- Undergraduate and graduate students in computer science and software engineering
- Academic instructors teaching software design, architecture, and object-oriented paradigms
- Professional software engineers, system architects, and technical team leads
- Institutional and departmental university libraries maintaining core computer science collections
- Corporate technical libraries and enterprise developer training programs
Institutional & Bulk Ordering
- Minimum order: 5 copies, with tiered pricing at higher quantities
- Purchase orders and Net-30 terms accepted for qualifying institutions
- Tax-exempt certificates accepted for qualifying accounts
- Free worldwide shipping, no sales tax
Edition & Identifier Check
Always confirm this exact ISBN-13 and edition (9780201633610) against your syllabus or procurement request before ordering — editions of this title are not interchangeable.