Review Topics
Unless otherwise specified below, know the following for each pattern
mentioned here:
- goals
- be able to draw a class model applying the pattern
- explain the pro's and con's of using the pattern
- be able to write code applying the pattern
For the patterns presented by students, know the goals/benefits, issues,
and basic structure of two of the patterns. One of those patterns
can be the pattern your group presented.
Patterns
- Creational patterns
- Factory Method, including static factory methods
- Singleton
- Structural patterns
- Adapter
- Composite
- Decorator
- Not I/O decorators (at least, no expectation you will
know the classes involved)
- Façade
- Proxy
- Behavioral patterns
- Command
- Observer
- Strategy
- Visitor (when covered)
- Other patterns
- Null Object
- Simple Factory
- Model/View/Controller
Design
- Definition of an object
- UML Notation
- Domain objects: identity, responsibility
- Noun/verb identification method
- Cohesion and coupling
- Threads, synchronization
Where to go from here?
- What would be the impact of using all the patterns on every project?
- How does coupling and cohesion relate to design patterns? Design in
general?
- Is this all of the patterns? Consider
the Bomb pattern
- Pattern Languages of Programs
(PLoP) conferences:
annual discussion of patterns among researchers
- Why the focus
on domain-driven
design?
- Basic structure: layers (Ch. 28 in Java Design Pattern
Essentials)
- Cost: potential performance impact