Chapter 1 - Introduction
Coupling
Model - View - Controller (MVC)
Advantages of MVC
Classes play roles
Design patterns span classes
Design patterns overlap
Interface and implementation
The effects of change
Observations
Lab
Chapter 2 - Clone
Problem
What won't work
Solution
Shallow copy
Deep copy
java.lang.Object.clone()
java.lang.Cloneable
Object.clone
What's wrong with Object.clone()?
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 3 - Prototype
Problem
Solution
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 4 - Factory Method
Problem
Solution
UML
Source code
Variations
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 5 - Disable Copying
Problem
Solution
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 6 - Singleton
Problem
What won't work
Solution
UML
When is a Singleton not a Singleton?
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 7 - Prototype, Factory Method, or Singleton?
Problem
Solution
Lab
Chapter 8 - Abstract Factory
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 9 - Bridge
Problem
What won't work
Solution
UML
Source code
How to hide the handle
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 10 - Proxy
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 11 - Iterator
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 12 - Composite
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 13 - Builder
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 14 - Flyweight
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 15 - Interpreter
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 16 - Visitor
Problem
Solution
Source code
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 17 - Chain of Responsibility
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 18 - Memento
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 19 - Command
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 20 - All of Me
Problem
Solution
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 21 - State
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 22 - Decorator
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 23 - Observer
Problem
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 24 - Adapter
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 25 - Facade
Problem
Solution
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 26 - Template Method
Problem
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 27 - Mediator
Problem
Solution
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 28 - Strategy
Problem
What won't work
Solution
UML
Source code
When to use this pattern
This pattern makes it easier to
This pattern reuses
References
Where this pattern is used in the Java SDK
Lab
Chapter 29 - Conclusion
Density
Principles
Advantages
Disadvantages
Sorting design patterns: By name
Sorting design patterns: By intent
Sorting design patterns: By purpose and scope
Sorting design patterns: By problems they solve
Sorting design patterns: By what they vary
URL's
Books
Magazines
Mailing lists
Conferences