際際滷

際際滷Share a Scribd company logo
Design Patterns 
1.Strategy Pattern
Strategy Pattern? 
 ろ碁一 (Strategy Pattern) 螻襴讀蟲一 螻 
螳螳 貂′ 蟲伎   襦 襷. ろ碁一  
覃 螻襴讀  企殊伎誤語 襴曙朱 螻襴讀 覲蟆渚 
 .
1 
るΜ 磯 覡伎 蟆 襷  豌朱 譴 螳豌伎 
蠍磯  Duck企朱  企るゼ 襷 れ. 
蠏 企るゼ ロ るジ 覈 譬襯 るΜ襯 襷れ. 
Duck 
quack() 
swim() 
display() 
Duck2 
display() { 
// 覈 
} 
Duck1 
display() { 
// 覈 
} 
覈 るΜれ 蟒リ愁 襴襯   螻 
れ 豺  蠍 覓語 狩企れ 
螳 貊襯 蟲. 
覈 るΜれ 覈 るゴ蠍 
覓語 display() 覃 
豢 覃. 
螳 覲襦 蠍 覈 覃伎 
覲伎譯手鍵  display()覃襯 
覲襦 蟲. 
 語 るジ 襷 
 るΜる 
Duck 企る覿 
 覦
1 
蠏碁磯 伎 るΜれ る  襦 伎狩 殊伎蟾. 
Duck 
quack() 
swim() 
display() 
fly(){} 
Duck2 
display() { 
// 覈 
} 
Duck1 
display() { 
// 覈 
} 
覈 觚企れ 
fly()襯  覦. 
fly()襯 豢螳 
蠍壱 Duck觚 企
1 
蠏碁磯 企蟆 豢螳螻 覈 るΜれ る蠍 . ル螳 るΜ る 
Duck 
quack() 
swim() 
display() 
fly(){} 
Duck2 
display() { 
// 覈 
} 
狩企れ fly()覃襯 
讌企l る覃 
  るΜれ  覈 
るΜれ る 蠍磯レ 
豢螳 
Duck1 
display() { 
// 覈 
} 
Duck3 
quack() { 
// 襴 
} 
display() { 
//覈 
} 
覩語 るΜ殊 襴襯 
企襦 quack()襯 る殊企
1 
Duck3 
quack() { 
// 襴 
} 
display() { 
//覈 
} 
fly() { 
// 覓願  
} 
Quack()覃豌 
fly 螳覲蟲 覃 . 
Duck4 
quack() { 
//覯企Μ 
} 
display() { 
//覈 
} 
fly() { 
// 覈視 
} 
Duck4豌 覯企Μ 讌 覈詩 
るΜ覃 企一朱 蟲伎狩. 
蠍一 覓語 Duck  螻牛  伎      蟆? 
A. 觚企れ 貊螳 譴覲給. 
E. るΜ螳 覃伎  蟒リ愁蟇磯Υ  . 
B. 燕 轟 覦蠑瑚鍵 る. 
F. 貊襯 覲蟆渚  るジ るΜろ 
C. るΜ螳 豢れ蟆 襷れ . 
豺  レ 殊 . 
D. 覈 るΜ  蠍 る.
  誤壱伎る 
 
 
: 
A 
B 
D 
E 
 螳煙 蠍磯 蟆一 覃 襷る Duck 觚 企れ fly() quack() 
覃襯 殊殊 危エ覺狩螻  磯 る殊企 伎  . 
蟆郁記 朱  るΜ襷 蟇磯 蟒リ愁蟇磯Υ  襦   蟾 覦覯 谿場 . 
Duck 
quack() 
swim() 
display() 
Duck1 
display() 
fly() 
quack() 
Duck2 
display() 
fly() 
quack() 
Duck3 
display() 
quack() 
Duck4 
display() 
Flyable 
fly() 
Quackable 
quack() 
企一朱 る?
覓語! 
覈 觚企れ 蟇磯 蟒リ愁蟇磯Μ 蠍磯レ 伎  蟆 覩襦 
  蟆 覦襯 願屋豈 朱 蟆   . 
觚企れ Flyable, Quackable 蟲 襦 朱 朱 覓語 願屋  
讌襷, 蠏碁蟆 覃 蠏碁   貊   蠍磯  蟆 .
覓語襯 覈蟆 蠍 
 蟇 譬讌 覈詩る蟇 . 
誤壱伎るゼ  覦覯 蟯谿 覲伎伎襷 覦 誤壱伎れ 
蟲 貊螳 れ願讌 蠍一 貊   る 覓語 
讀   覦蠖 襷 蠏     襦 るジ 觚企 
れ 覿 谿場 貊襯 覦蠖譴狩. 
  伎碁Υ 襷  豺 
(覦8 
誤壱伎れ 
蟲 螳ロ.) 
 豺 
襴貅伎 殊 
覿覿 谿場願, 殊讌  
覿覿朱覿 覿襴 . 
貂′ 
覦 覿覿 磯 觸 貂′. 蠏碁蟆 覃 譴 覦讌  覿覿 
レ 覩語讌  豈襦 蠏 覿覿襷 螻豺蟇磯 ロ  .
覦 覿覿螻 蠏碁讌  覿覿 覿襴蠍 
 fly() quack() 覓語襯 誤覃 Duck企る  螻 . 
覲 覿覿螻 蠏碁襦  覿覿 覿襴る  螳 企 讌 襷れ伎狩. 
  蟆螻 蟯 讌.  襴企 蟆螻 蟯 覿覿. 
螳 企 讌 螳螳  蟲 蟆 覿 讌企k. 
Duck Class 
讒 
觜襴 
襴 蟒リ愁 
 
 
  襴企  
るΜ  
覦 覿覿 觸蠍
るΜ   
1. 豕 蟆 襷. 
2. Duck 語ろ伎れ  麹 伎狩. 
3.  朱 覦蠖 朱 譬 (setter) 
 覯讌  豺 
 豺 
蟲  誤壱伎れ 
襷豢一 襦蠏碁覦. 
蠍一 誤壱伎る 譴朱一.(覦 or 螳襷) 
旧 れ 燕 一企 螳豌願 貊 伎 螻 襦,   
 襷豢一 襦蠏碁覦朱 ろレ煙 伎 る 蟆.
襯 る 
Animal 
makeSound() 
Cat 
makeSound() { 
meow() 
} 
meow() {殊} 
Dog 
makeSound() { 
back(); 
} 
back(){覃覃} 
蟲 襷豢 貊 
覲 d襯 Dog朱 誤覃 
企 蟲豌伎瑚規 襷豢一 貊 伎狩 
誤壱伎/  襷豢 貊 
Dog朱 蟇 螻 蠍 讌襷 ろ煙 
 Animal  朱一るゼ 企 
蟲豌伎朱 蟲 螳豌企ゼ ろ  貊 
Animal   螳企 企 語 覈襴. 
讌 makeSound()  覦襯 覦  襷 朱企
Duck  蟲 覦覯 
<<誤壱伎>> 
FlyBehavior 
fly() 
<<誤壱伎>> 
QuackBehavior 
quack() 
FlyNoWay 
fly() { 
// 覈視 
} 
FlyWithWings 
fly() { 
//  
} 
Squack 
quack() { 
// 
} 
Quack 
quack() { 
// 蟒リ愁 
} 
企 朱 誤覃 るジ  螳豌伎  螻 襴企   . 
蠍一ヾ  企るゼ 蟇磯 蟇企襴讌 螻 襦  豢螳  .
Duck  牛蠍 
螳 譴  伎 Duck  螻 襴 企  Duck 企 
( 觚企)  覃襯  蟲讌 螻 るジ 企れ る蟆. 
1.  螳 誤壱伎  語ろ伎 覲襯 豢螳. 
螳 觚企れ ろ 企   
  朱一るゼ ろ朱 れ. 
Duck 
quack() 
swim() 
display() 
fly() 
Duck 
FlyBehavior flyBehavior 
QuackBehavior quackBehavior 
preformQuack() 
swim() 
display() 
preformFly() 
覲蟆
Duck  牛蠍2 
2 performQuack() 蟲 
襴企  讌 豌襴 , 
quackBehavior襦 谿語^ 螳豌伎 蠏  . 
3.語ろ伎 覲 れ覦覯 
襴襯 豌襴 
Quack企るゼ 蠍一 
performQuack() 語覃 
 Quack 螳豌伎蟆 .
貂′   蠏碁殊朱 覲願鍵 
Duck 
FlyBehavior flyBehavior 
QuackBehavior quackBehavior 
preformQuack() 
swim() 
display() 
preformFly() 
Duck1 
display() 
Duck2 
display() 
Duck3 
display() 
<<誤壱伎>> 
FlyBehavior 
fly() 
FlyNoWay 
fly() { 
// 覈視 
} 
FlyWithWings 
fly() { 
//  
} 
<<誤壱伎>> 
QuackBehavior 
quack() 
Squack 
quack() { 
// 
} 
Quack 
quack() { 
// 蟒リ愁 
} 
螳  讌 
螻襴讀蟲一朱 
螳.
企 伎 蟯螻 
A B企も 覲企 A B螳 も螳  . 
FlyBehavior QuackBehavior螳  螳螳 螻 襴企 覦 
 企るゼ 企 朱 豺 蟆 蟲(composition) 伎 蟆企手. 
Duck企れ  覦 , 覦襯  螳豌企 蟲焔朱  覿覦. 
企 螻  覯讌  豺. 
 豺 
覲企る 蟲煙 . 
蟲煙 伎 ろ 襷る 一煙 蟆 レ  . 
 螻襴讀蟲一 覲 企れ 讌朱 貂′  襦 
襷 蟆 訖  蟲煙襦  螳豌伎 覦襯  
誤壱伎るゼ 蟲蠍磯 覃 ろ  覦蠖  蟆 伎.

More Related Content

Design patterns

  • 2. Strategy Pattern? ろ碁一 (Strategy Pattern) 螻襴讀蟲一 螻 螳螳 貂′ 蟲伎 襦 襷. ろ碁一 覃 螻襴讀 企殊伎誤語 襴曙朱 螻襴讀 覲蟆渚 .
  • 3. 1 るΜ 磯 覡伎 蟆 襷 豌朱 譴 螳豌伎 蠍磯 Duck企朱 企るゼ 襷 れ. 蠏 企るゼ ロ るジ 覈 譬襯 るΜ襯 襷れ. Duck quack() swim() display() Duck2 display() { // 覈 } Duck1 display() { // 覈 } 覈 るΜれ 蟒リ愁 襴襯 螻 れ 豺 蠍 覓語 狩企れ 螳 貊襯 蟲. 覈 るΜれ 覈 るゴ蠍 覓語 display() 覃 豢 覃. 螳 覲襦 蠍 覈 覃伎 覲伎譯手鍵 display()覃襯 覲襦 蟲. 語 るジ 襷 るΜる Duck 企る覿 覦
  • 4. 1 蠏碁磯 伎 るΜれ る 襦 伎狩 殊伎蟾. Duck quack() swim() display() fly(){} Duck2 display() { // 覈 } Duck1 display() { // 覈 } 覈 觚企れ fly()襯 覦. fly()襯 豢螳 蠍壱 Duck觚 企
  • 5. 1 蠏碁磯 企蟆 豢螳螻 覈 るΜれ る蠍 . ル螳 るΜ る Duck quack() swim() display() fly(){} Duck2 display() { // 覈 } 狩企れ fly()覃襯 讌企l る覃 るΜれ 覈 るΜれ る 蠍磯レ 豢螳 Duck1 display() { // 覈 } Duck3 quack() { // 襴 } display() { //覈 } 覩語 るΜ殊 襴襯 企襦 quack()襯 る殊企
  • 6. 1 Duck3 quack() { // 襴 } display() { //覈 } fly() { // 覓願 } Quack()覃豌 fly 螳覲蟲 覃 . Duck4 quack() { //覯企Μ } display() { //覈 } fly() { // 覈視 } Duck4豌 覯企Μ 讌 覈詩 るΜ覃 企一朱 蟲伎狩. 蠍一 覓語 Duck 螻牛 伎 蟆? A. 觚企れ 貊螳 譴覲給. E. るΜ螳 覃伎 蟒リ愁蟇磯Υ . B. 燕 轟 覦蠑瑚鍵 る. F. 貊襯 覲蟆渚 るジ るΜろ C. るΜ螳 豢れ蟆 襷れ . 豺 レ 殊 . D. 覈 るΜ 蠍 る.
  • 7. 誤壱伎る : A B D E 螳煙 蠍磯 蟆一 覃 襷る Duck 觚 企れ fly() quack() 覃襯 殊殊 危エ覺狩螻 磯 る殊企 伎 . 蟆郁記 朱 るΜ襷 蟇磯 蟒リ愁蟇磯Υ 襦 蟾 覦覯 谿場 . Duck quack() swim() display() Duck1 display() fly() quack() Duck2 display() fly() quack() Duck3 display() quack() Duck4 display() Flyable fly() Quackable quack() 企一朱 る?
  • 8. 覓語! 覈 觚企れ 蟇磯 蟒リ愁蟇磯Μ 蠍磯レ 伎 蟆 覩襦 蟆 覦襯 願屋豈 朱 蟆 . 觚企れ Flyable, Quackable 蟲 襦 朱 朱 覓語 願屋 讌襷, 蠏碁蟆 覃 蠏碁 貊 蠍磯 蟆 .
  • 9. 覓語襯 覈蟆 蠍 蟇 譬讌 覈詩る蟇 . 誤壱伎るゼ 覦覯 蟯谿 覲伎伎襷 覦 誤壱伎れ 蟲 貊螳 れ願讌 蠍一 貊 る 覓語 讀 覦蠖 襷 蠏 襦 るジ 觚企 れ 覿 谿場 貊襯 覦蠖譴狩. 伎碁Υ 襷 豺 (覦8 誤壱伎れ 蟲 螳ロ.) 豺 襴貅伎 殊 覿覿 谿場願, 殊讌 覿覿朱覿 覿襴 . 貂′ 覦 覿覿 磯 觸 貂′. 蠏碁蟆 覃 譴 覦讌 覿覿 レ 覩語讌 豈襦 蠏 覿覿襷 螻豺蟇磯 ロ .
  • 10. 覦 覿覿螻 蠏碁讌 覿覿 覿襴蠍 fly() quack() 覓語襯 誤覃 Duck企る 螻 . 覲 覿覿螻 蠏碁襦 覿覿 覿襴る 螳 企 讌 襷れ伎狩. 蟆螻 蟯 讌. 襴企 蟆螻 蟯 覿覿. 螳 企 讌 螳螳 蟲 蟆 覿 讌企k. Duck Class 讒 觜襴 襴 蟒リ愁 襴企 るΜ 覦 覿覿 觸蠍
  • 11. るΜ 1. 豕 蟆 襷. 2. Duck 語ろ伎れ 麹 伎狩. 3. 朱 覦蠖 朱 譬 (setter) 覯讌 豺 豺 蟲 誤壱伎れ 襷豢一 襦蠏碁覦. 蠍一 誤壱伎る 譴朱一.(覦 or 螳襷) 旧 れ 燕 一企 螳豌願 貊 伎 螻 襦, 襷豢一 襦蠏碁覦朱 ろレ煙 伎 る 蟆.
  • 12. 襯 る Animal makeSound() Cat makeSound() { meow() } meow() {殊} Dog makeSound() { back(); } back(){覃覃} 蟲 襷豢 貊 覲 d襯 Dog朱 誤覃 企 蟲豌伎瑚規 襷豢一 貊 伎狩 誤壱伎/ 襷豢 貊 Dog朱 蟇 螻 蠍 讌襷 ろ煙 Animal 朱一るゼ 企 蟲豌伎朱 蟲 螳豌企ゼ ろ 貊 Animal 螳企 企 語 覈襴. 讌 makeSound() 覦襯 覦 襷 朱企
  • 13. Duck 蟲 覦覯 <<誤壱伎>> FlyBehavior fly() <<誤壱伎>> QuackBehavior quack() FlyNoWay fly() { // 覈視 } FlyWithWings fly() { // } Squack quack() { // } Quack quack() { // 蟒リ愁 } 企 朱 誤覃 るジ 螳豌伎 螻 襴企 . 蠍一ヾ 企るゼ 蟇磯 蟇企襴讌 螻 襦 豢螳 .
  • 14. Duck 牛蠍 螳 譴 伎 Duck 螻 襴 企 Duck 企 ( 觚企) 覃襯 蟲讌 螻 るジ 企れ る蟆. 1. 螳 誤壱伎 語ろ伎 覲襯 豢螳. 螳 觚企れ ろ 企 朱一るゼ ろ朱 れ. Duck quack() swim() display() fly() Duck FlyBehavior flyBehavior QuackBehavior quackBehavior preformQuack() swim() display() preformFly() 覲蟆
  • 15. Duck 牛蠍2 2 performQuack() 蟲 襴企 讌 豌襴 , quackBehavior襦 谿語^ 螳豌伎 蠏 . 3.語ろ伎 覲 れ覦覯 襴襯 豌襴 Quack企るゼ 蠍一 performQuack() 語覃 Quack 螳豌伎蟆 .
  • 16. 貂′ 蠏碁殊朱 覲願鍵 Duck FlyBehavior flyBehavior QuackBehavior quackBehavior preformQuack() swim() display() preformFly() Duck1 display() Duck2 display() Duck3 display() <<誤壱伎>> FlyBehavior fly() FlyNoWay fly() { // 覈視 } FlyWithWings fly() { // } <<誤壱伎>> QuackBehavior quack() Squack quack() { // } Quack quack() { // 蟒リ愁 } 螳 讌 螻襴讀蟲一朱 螳.
  • 17. 企 伎 蟯螻 A B企も 覲企 A B螳 も螳 . FlyBehavior QuackBehavior螳 螳螳 螻 襴企 覦 企るゼ 企 朱 豺 蟆 蟲(composition) 伎 蟆企手. Duck企れ 覦 , 覦襯 螳豌企 蟲焔朱 覿覦. 企 螻 覯讌 豺. 豺 覲企る 蟲煙 . 蟲煙 伎 ろ 襷る 一煙 蟆 レ . 螻襴讀蟲一 覲 企れ 讌朱 貂′ 襦 襷 蟆 訖 蟲煙襦 螳豌伎 覦襯 誤壱伎るゼ 蟲蠍磯 覃 ろ 覦蠖 蟆 伎.