Home Page Icon
Home Page
Table of Contents for
Design Pattern Catalog
Close
Design Pattern Catalog
by John Vlissides, Ralph Johnson, Richard Helm, Erich Gamma
Design Patterns: Elements of Reusable Object-Oriented Software
Copyright
Addison-Wesley Professional Computing Series
Praise for Design Patterns: Elements of Reusable Object-Oriented Software
Preface
Foreword
Guide to Readers
1. Introduction
1.1. What Is a Design Pattern?
1.2. Design Patterns in Smalltalk MVC
1.3. Describing Design Patterns
Pattern Name and Classification
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
1.4. The Catalog of Design Patterns
1.5. Organizing the Catalog
1.6. How Design Patterns Solve Design Problems
Finding Appropriate Objects
Determining Object Granularity
Specifying Object Interfaces
Specifying Object Implementations
Class versus Interface Inheritance
Programming to an Interface, not an Implementation
Putting Reuse Mechanisms to Work
Inheritance versus Composition
Delegation
Inheritance versus Parameterized Types
Relating Run-Time and Compile-Time Structures
Designing for Change
Application Programs
Toolkits
Frameworks
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
Recursive Composition
Glyphs
Composite Pattern
2.3. Formatting
Encapsulating the Formatting Algorithm
Compositor and Composition
Strategy Pattern
2.4. Embellishing the User Interface
Transparent Enclosure
Monoglyph
Decorator Pattern
2.5. Supporting Multiple Look-and-Feel Standards
Abstracting Object Creation
Factories and Product Classes
Abstract Factory Pattern
2.6. Supporting Multiple Window Systems
Can We Use an Abstract Factory?
Encapsulating Implementation Dependencies
Window and WindowImp
WindowImp Subclasses
Configuring Windows with WindowImps
Bridge Pattern
2.7. User Operations
Encapsulating a Request
Command Class and Subclasses
Undoability
Command History
Command Pattern
2.8. Spelling Checking and Hyphenation
Accessing Scattered Information
Encapsulating Access and Traversal
Iterator Class and Subclasses
Iterator Pattern
Traversal versus Traversal Actions
Encapsulating the Analysis
Visitor Class and Subclasses
Visitor Pattern
2.9. Summary
Design Pattern Catalog
3. Creational Patterns
Object Creational: Abstract Factory
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Creational: Builder
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Class Creational: Factory Method
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Creational: Prototype
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Creational: Singleton
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Discussion of Creational Patterns
4. Structural Patterns
Class, Object Structural: Adapter
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Bridge
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Composite
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Decorator
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Facade
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Flyweight
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Structural: Proxy
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Discussion of Structural Patterns
Adapter versus Bridge
Composite versus Decorator versus Proxy
5. Behavioral Patterns
Object Behavioral: Chain of Responsibility
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Command
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Class Behavioral: Interpreter
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Iterator
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Mediator
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Memento
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Observer
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: State
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Strategy
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Class Behavioral: Template Method
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Object Behavioral: Visitor
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Discussion of Behavioral Patterns
Encapsulating Variation
Objects as Arguments
Should Communication be Encapsulated or Distributed?
Decoupling Senders and Receivers
Summary
6. Conclusion
6.1. What to Expect from Design Patterns
A Common Design Vocabulary
A Documentation and Learning Aid
An Adjunct to Existing Methods
A Target for Refactoring
6.2. A Brief History
6.3. The Pattern Community
Alexander’s Pattern Languages
Patterns in Software
6.4. An Invitation
6.5. A Parting Thought
A. Glossary
B. Guide to Notation
B.1. Class Diagram
B.2. Object Diagram
B.3. Interaction Diagram
C. Foundation Classes
C.1. List
Construction, Destruction, Initialization, and Assignment
Accessing
Adding
Removing
Stack Interface
C.2. Iterator
C.3. ListIterator
C.4. Point
C.5. Rect
Bibliography
Inside Front Cover
Creational Patterns
Structural Patterns
Behavioral Patterns
Inside Back Cover
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
2. A Case Study: Designing a Document Editor
Next
Next Chapter
3. Creational Patterns
Part . Design Pattern Catalog
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset