Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Contents
Preface to CD
Preface to Book
Foreword
Guide to Readers
1. Introduction
What is a Design Pattern?
Design Patterns in Smalltalk MVC
Describing Design Patterns
The Catalog of Design Patterns
Organizing the Catalog
How Design Patterns Solve Design Problems
Finding Appropriate Objects
Determining Object Granularity
Specifying Object Interfaces
Specifying Object Implementations
Putting Reuse Mechanisms to Work
Designing for Change
How to Select a Design Pattern
How to Use a Design Pattern
2. A Case Study: Design a Document Editor
Design Problems
Document Structure
Recursive Composition
Glyphs
Composite Pattern
Formatting
Encapsulating the Formatting Algorithm
Compositor and Composition
Strategy Pattern
Embellishing the User Interface
Transparent Enclosure
Monoglyph
Decorator Pattern
Supporting Multiple Look-and-Feel Standards
Abstracting Object Creation
Factories and Product Classes
Abstract Factory Pattern
Supporting Multiple Window Systems
Can We Use an Abstract Factory?
Encapsulating Implementation Dependencies
Window and WindowImp
WindowImp Subclasses
Configuring Windows with WindowImps
Bridge Pattern
User Operations
Encapsulating a Request
Command Class and Subclasses
Undoability
Command History
Command Pattern
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
Summary
3. Creational Patterns
Abstract Factory
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Builder
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Factory Method
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Prototype
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Singleton
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Discussion of Creational Patterns
4. Structural Patterns
Adapter
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Bridge
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Composite
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Decorator
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Facade
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Flyweight
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
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
Chain of Responsibility
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Command
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Interpreter
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Iterator
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Mediator
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Memento
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Observer
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
State
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Strategy
Intent
Also Known As
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
Template Method
Intent
Motivation
Applicability
Structure
Participants
Collaborations
Consequences
Implementation
Sample Code
Known Uses
Related Patterns
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
What to Expect from Design Patterns
A Common Design Vocabulary
A Documentation and Learning Aid
An Adjunct to Existing Methods
A Target for Refactoring
A Brief History
The Pattern Community
Alexander's Pattern Languages
Patterns in Software
An Invitation
A Parting Thought
Appendix A: Glossary
Appendix B: Guide to Notation
Class Diagram
Object Diagram
Interaction Diagram
Appendix C: Foundation Classes
List
Construction, Destruction, Initialization, and Assignment
Accessing
Adding
Removing
Stack Interface
Iterator
ListIterator
Point
Rect
Bibliography
← Prev
Back
Next →
← Prev
Back
Next →