2 Patterns Overview
2 Patterns Overview
Douglas C. Schmidt
[email protected]
www.dre.vanderbilt.edu/~schmidt
Vanderbilt University
Nashville, Tennessee, USA
Overview of Patterns Douglas C. Schmidt
2
Overview of Patterns Douglas C. Schmidt
3
Overview of Patterns Douglas C. Schmidt
5
Overview of Patterns Douglas C. Schmidt
6
Overview of Patterns Douglas C. Schmidt
7
Overview of Patterns Douglas C. Schmidt
8
Overview of Patterns Douglas C. Schmidt
9
Overview of Patterns Douglas C. Schmidt
10
Overview of Patterns Douglas C. Schmidt
Jug
Handle
pattern
11
Overview of Patterns Douglas C. Schmidt
ConcreteObserver
Observer
pattern
12
Overview of Patterns Douglas C. Schmidt
14
Overview of Patterns Douglas C. Schmidt
15
Overview of Patterns Douglas C. Schmidt
16
Overview of Patterns Douglas C. Schmidt
17
Overview of Patterns Douglas C. Schmidt
20
Overview of Patterns Douglas C. Schmidt
22
Overview of Patterns Douglas C. Schmidt
Strategy
pattern
23
Overview of Patterns Douglas C. Schmidt
24
Overview of Patterns Douglas C. Schmidt
25
Overview of Patterns Douglas C. Schmidt
26
Overview of Patterns Douglas C. Schmidt
27
Overview of Patterns Douglas C. Schmidt
Summary
• Patterns support • Patterns can be applied in all
• Design at a more abstract level software lifecycle phases
• Treat many class/object • Analysis, design, & reviews
interactions as a conceptual unit • Implementation &
• Emphasize design qua design, not documentation
(obscure) language features • Testing & optimization
• Provide ideal targets for design • Reuse & refactoring
refactoring • Resist urge to brand everything as
• Variation-oriented design process a pattern
1. Determine which design elements • Articulate specific benefits &
can vary demonstrate general
2. Identify applicable pattern(s) applicability
3. Vary patterns & evaluate trade-offs • e.g., find three different
existing examples from code
4. Repeat…
other than your own!