4-Design Patterns - Google Slides
4-Design Patterns - Google Slides
1
Design Patterns
2 Design Patterns
Someone has already solved your problems !!
3 Duck Simulator Example (source: Head First Design Patterns, 2nd ed.)
● This simulator is for showing large variety of ducks quacking, flying
etc.
● This is not for one type of duck. Many different variety of ducks
○ eg. Mallard duck, Redhead duck
Design Patterns
4 Class Diagram: Design 1:
5 Design 1: Extensibility
6 Design 1: Flaw
Rubber duck
quack()
swim()
display()
fly()
RubberDuck
display() {
//looks like a redhead
MallardDuck }
RedHeadDuck fly() {
//override to do
display() { nothing
//looks like a mallard display() { }
} //looks like a redhead quack() {
} //overridden to
squeak
}
8 Design 2: Flaw
● Overriding solution is not a cleaner way
● There will be issues with maintenance when there are
modifications in the future.
● Whenever a new Duck subclass is added all the required overriding
have to be done.