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 and basic structure
of each.
Patterns
- Creational patterns
- Factory Method, including static factory methods
- Builder (student presentation)
- Prototype (student presentation)
- Singleton
- Structural patterns
- Adapter
- Composite
- Decorator
- Not I/O decorators (at least, no expectation you will
know the classes involved)
- Facade
- Flyweight (student presentation)
- Proxy
- Behavioral patterns
- Command
- Iterator (student presentation)
- Memento (student presentation)
- Observer
- State (student presentation)
- Strategy
- Template (student presentation)
- Visitor
- 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