Design Patterns Summer Course 2009-2010 - Session#4
-
Upload
muhamad-hesham -
Category
Technology
-
view
143 -
download
0
Transcript of Design Patterns Summer Course 2009-2010 - Session#4
![Page 1: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/1.jpg)
Lecture #4Ahmed Safwat
Muhamad HeshamAbdelrahman Al-Ogail
![Page 2: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/2.jpg)
What about Singleton? Call for a new requirement. First try implementation. Meet today’s pattern. Second try implementation. Common uses. Project Description. What’s after all of this?
![Page 3: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/3.jpg)
What have we didtill now?
![Page 4: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/4.jpg)
You: Dad, I need pocket money.
Dad: *^^%^&@&**&^#&*%&*#%
![Page 5: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/5.jpg)
![Page 6: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/6.jpg)
![Page 7: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/7.jpg)
Away
Available
Busy
busy
sign in
Offline
away
away
available
busy
available
All states are connected
to offline via sign out
![Page 8: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/8.jpg)
![Page 9: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/9.jpg)
Out of Pepsi
Pepsi Sold
No Money
Has Money
insert
money
eject
money
pepsi > 0
pepsi = 0
order pepsi
![Page 10: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/10.jpg)
Running Idle
reach cliff
after a while
![Page 11: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/11.jpg)
I want the enemy turn crazy when you collect a gem.
If you touch the enemy while it is crazy, you die and it turns idle again.
Double crazy enemy speed by 4 times once.
![Page 12: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/12.jpg)
Running Idle
reach cliff
after a while
Crazy
gem
collectedgem
collected
player died
![Page 13: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/13.jpg)
What do you think we need do this time ?
![Page 14: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/14.jpg)
Violates Open Closed Princible.
Not object oriented. Further additions will
cause bugs. State transitions are
buried between if-else.
![Page 15: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/15.jpg)
Exploring the pattern Let’s Google it!
![Page 16: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/16.jpg)
![Page 17: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/17.jpg)
Explaining the pattern Pattern class diagram
![Page 18: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/18.jpg)
![Page 19: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/19.jpg)
Pac-Man
![Page 20: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/20.jpg)
Keyboard with Shift Key
![Page 21: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/21.jpg)
Windows Live Mail (Offline/Online)
![Page 22: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/22.jpg)
Pattern’s Challenge Try it yourself
Strategy/State conflict Challenge:
What are the differences between State and
Strategy Pattern?
![Page 23: Design Patterns Summer Course 2009-2010 - Session#4](https://reader033.fdocuments.net/reader033/viewer/2022052903/5577dbd5d8b42a7b7b8b477a/html5/thumbnails/23.jpg)
What’s Next
State Pattern: Chapter 10 in Head First Strategy Pattern: Chapter 1 in Head First GoF: Behavioral Pattern Section Section: enhance way of drawing shapes
Further Reading