際際滷

際際滷Share a Scribd company logo
Chapter10.
Making Method Calls Simpler
Making Method Calls Simpler


                      2012.08.21
                          覦覩
Rename Method
Add Parameter            Introduce Parameter Object
Remove Parameter         Remove Setting Method
Separate Query from      Hide Method
Modifier
                         Replace Constructor with
Parameterize Method      Factory Method
Replace Parameter with   Encapsulate Downcast
Explicit Methods
                         Replace Error Code with
Preserve Whole Object    Exception
Replace Parameter with   Replace Exception with Test
Method
Replace Error Code with
Rename Method                   Exception
                                vs Replace Exception with
Add Parameter                   Test
vs Remove Parameter
                                Remove Setting Method
Parameterize Method             & Hide Method
vs Replace Parameter with
Explicit Methods
                                Replace Constructor with
                                Factory Method
Preserve Whole Object
vs Introduce Parameter Object
                                Separate Query from Modifier
Replace Parameter with
Method                          Encapsulate Downcast
Rename Method



 覃 企 蠏 覈 伎 覈詩螻 る 覃
  企 覦蠖 !!

 覃 企 覦襦 覦蠑碁 蟆  襦 覃
 襯 襷り 谿語^襯 覲蟆渚 .
Add Parameter



 企 覃螳 蠏 覃襯 語 覿覿  襷 覲企ゼ 襦 る
 ,  覲企ゼ 蠍   螳豌伎  襴襾誤磯ゼ 豢螳 !!
 螳ロ覃 るジ  谿剰 ,  襴襷 讌  .
 蠍 朱誤 襴ろ碁 蠍一牛蠍 企糾 譬譬 一危 企Μ襯 襦 蠍 
 覓語 譬 .
 => Introduce Parameter Object
 朱誤一 企 螳企朱 蠍  讌襷 , 朱朱 螳豌 朱誤一
 null  蠍郁 , 蠍磯蓋 朱誤一 覈 伎 螳 蠍企 .
Remove Parameter



 朱誤郁 覃 覈語牡  伎 讌 る
 , 蠏 朱誤磯ゼ 蟇壱 .
 朱誤磯ゼ 蟇壱 蟆  襴襷企 .
 覿 朱誤磯ゼ 蟇壱讌 朱 誤 , 蠏 覃
 襯  覈 れ 殊  襷 蟆 襷 .
Parameterize Method
vs Replace Parameter with Explicit Methods
vs Replace Parameter with Explicit Methods




    覈覈 覃螳 覃 覈語牡 るジ 螳 
    螻  蟆 誤螻 觜訣 殊
    螻 る , るジ 螳 朱誤磯 蟆 覦
      覃襯 襷れ企 .
    ==> 譴覲給 貊螳 伎螻 一煙 譬
    讌 .


    朱誤一 螳 磯殊 るジ 貊襯 ろ
     覃螳 る , 螳螳 朱誤 螳
     覲 覃襯 襷れ企 .
    ==> 譟郁唄 磯ジ  狩 訖襷 
    貉危   語    .  誤
    伎り 譬  覈伎 .
Preserve Whole Object
vs Introduce Parameter Object
vs Introduce Parameter Object




    企 螳豌伎  螳
    螳 詞 れ 覃襯
    語覃伎 朱誤磯 
    蠍郁 る ,  蠏 螳豌
    襯 朱誤磯 蟆 !!


                        螳豌願   Introduce Parameter
                       Object  螳 襦 螳豌企ゼ  .
Remove Setting Method
                              & Hide Method
 & Hide Method




    企 螳 螳豌 煙
    螳 伎螻 蠏 危
    覲蟆暑讌  る , 蠏
    螳 れ 覈 覃
    襯 蟇壱 !!
    企  螳 覦 蟆
    讌 る , 蠏       覃螳 るジ 企れ 讌 る , 蠏 覃
     set method 襯 螻牛   襯 private 朱 襷れ企 .
    讌 襷 . ( 蠏碁Μ螻 蠏 襯
    final 襦 襷れ企 .)
Replace Constructor with Factory Method




 螳豌企ゼ    燕 蟆 伎
  るジ  螻 る , 煙襯 
 襴 覃襦 豌危 .
 ==> 煙襯 語 覿覿 覈 襴
 覃襯 襦 覦蠑瑚 , 煙襯
 private 朱 襷 .
 覓語伎 伎 觚企 螳豌 
 ==> Class.forName() 
 ==> 襦 subclass 襯 豢螳朱
 create 覃襯 一危   
   譬 .
 ==> 蠏碁 , 貉危   る豌危 
  .
 覈 覃襦 觚企 螳豌 
 ==> 覲讌  讌 覈螳 觚企
 襷 螳讌螻 る  覦覯  .
Encapsulate Downcast




  覃螳 蠏 語覿 れ伎ろ (downcast)  
  螳  螳豌企ゼ 襴危螻 る , れ伎ろ  蟆
  覃 朱 蟆 .
  れ伎ろ 殊 覈襯碁 .
  ==> 螳ロ覃 れ 貂ろ 蟆 伎  .
Separate Query from Modifier




   螳 襴危 訖襷  螳豌伎  覲蟆渚 覃
   襯 螳讌螻  蟆曙 ,  螳 覃襯 襷れ伎 
   螳 襴危  螻 ,  螳豌伎 襯 覲蟆
     蟆  !!
   螳 襴危  覿 螳讌螻  覃襯 覦
   蟆る , 讌 覿覿螻 覲蟆渚 覿覿 覿襴伎
    .
Replace Error Code with Exception
                 vs Replace Exception with Test
                 vs Replace Exception with Test




    覃螳 襯 企 豪 貊襯 螳讌螻 る ,  碁ゼ 碁 !!
    語覿 襾殊 蟆   譟郁唄  碁ゼ 讌螻 る , 語覿螳 襾殊 蟆
    襦 覦蠖 !!
    ==> 碁 語  伎 伎  . 瑚 譟郁唄 ろ碁ゼ  
    覃  .
襴 ..
  麹 企 覃 , 企 覲蟆 !!
  豢螳 朱誤郁 覃 朱誤 豢螳 !!
  朱誤郁 蠍語伎  螳豌企ゼ 蠍磯 蟆 螻
   !!
  覿 朱誤磯 覦襦 蟇 !!
  企 螳 燕 覲蟆曙 る 一蟇 !!
  煙 private!!
  覃 るジ 企れ 焔讌 朱
  private 朱 螳豢 !!
     !!  磯 語 螻褐
   蟆襦  !!
End.

More Related Content

Chap10.Making Method Calls Simpler

  • 1. Chapter10. Making Method Calls Simpler Making Method Calls Simpler 2012.08.21 覦覩
  • 2. Rename Method Add Parameter Introduce Parameter Object Remove Parameter Remove Setting Method Separate Query from Hide Method Modifier Replace Constructor with Parameterize Method Factory Method Replace Parameter with Encapsulate Downcast Explicit Methods Replace Error Code with Preserve Whole Object Exception Replace Parameter with Replace Exception with Test Method
  • 3. Replace Error Code with Rename Method Exception vs Replace Exception with Add Parameter Test vs Remove Parameter Remove Setting Method Parameterize Method & Hide Method vs Replace Parameter with Explicit Methods Replace Constructor with Factory Method Preserve Whole Object vs Introduce Parameter Object Separate Query from Modifier Replace Parameter with Method Encapsulate Downcast
  • 4. Rename Method 覃 企 蠏 覈 伎 覈詩螻 る 覃 企 覦蠖 !! 覃 企 覦襦 覦蠑碁 蟆 襦 覃 襯 襷り 谿語^襯 覲蟆渚 .
  • 5. Add Parameter 企 覃螳 蠏 覃襯 語 覿覿 襷 覲企ゼ 襦 る , 覲企ゼ 蠍 螳豌伎 襴襾誤磯ゼ 豢螳 !! 螳ロ覃 るジ 谿剰 , 襴襷 讌 . 蠍 朱誤 襴ろ碁 蠍一牛蠍 企糾 譬譬 一危 企Μ襯 襦 蠍 覓語 譬 . => Introduce Parameter Object 朱誤一 企 螳企朱 蠍 讌襷 , 朱朱 螳豌 朱誤一 null 蠍郁 , 蠍磯蓋 朱誤一 覈 伎 螳 蠍企 .
  • 6. Remove Parameter 朱誤郁 覃 覈語牡 伎 讌 る , 蠏 朱誤磯ゼ 蟇壱 . 朱誤磯ゼ 蟇壱 蟆 襴襷企 . 覿 朱誤磯ゼ 蟇壱讌 朱 誤 , 蠏 覃 襯 覈 れ 殊 襷 蟆 襷 .
  • 7. Parameterize Method vs Replace Parameter with Explicit Methods vs Replace Parameter with Explicit Methods 覈覈 覃螳 覃 覈語牡 るジ 螳 螻 蟆 誤螻 觜訣 殊 螻 る , るジ 螳 朱誤磯 蟆 覦 覃襯 襷れ企 . ==> 譴覲給 貊螳 伎螻 一煙 譬 讌 . 朱誤一 螳 磯殊 るジ 貊襯 ろ 覃螳 る , 螳螳 朱誤 螳 覲 覃襯 襷れ企 . ==> 譟郁唄 磯ジ 狩 訖襷 貉危 語 . 誤 伎り 譬 覈伎 .
  • 8. Preserve Whole Object vs Introduce Parameter Object vs Introduce Parameter Object 企 螳豌伎 螳 螳 詞 れ 覃襯 語覃伎 朱誤磯 蠍郁 る , 蠏 螳豌 襯 朱誤磯 蟆 !! 螳豌願 Introduce Parameter Object 螳 襦 螳豌企ゼ .
  • 9. Remove Setting Method & Hide Method & Hide Method 企 螳 螳豌 煙 螳 伎螻 蠏 危 覲蟆暑讌 る , 蠏 螳 れ 覈 覃 襯 蟇壱 !! 企 螳 覦 蟆 讌 る , 蠏 覃螳 るジ 企れ 讌 る , 蠏 覃 set method 襯 螻牛 襯 private 朱 襷れ企 . 讌 襷 . ( 蠏碁Μ螻 蠏 襯 final 襦 襷れ企 .)
  • 10. Replace Constructor with Factory Method 螳豌企ゼ 燕 蟆 伎 るジ 螻 る , 煙襯 襴 覃襦 豌危 . ==> 煙襯 語 覿覿 覈 襴 覃襯 襦 覦蠑瑚 , 煙襯 private 朱 襷 . 覓語伎 伎 觚企 螳豌 ==> Class.forName() ==> 襦 subclass 襯 豢螳朱 create 覃襯 一危 譬 . ==> 蠏碁 , 貉危 る豌危 . 覈 覃襦 觚企 螳豌 ==> 覲讌 讌 覈螳 觚企 襷 螳讌螻 る 覦覯 .
  • 11. Encapsulate Downcast 覃螳 蠏 語覿 れ伎ろ (downcast) 螳 螳豌企ゼ 襴危螻 る , れ伎ろ 蟆 覃 朱 蟆 . れ伎ろ 殊 覈襯碁 . ==> 螳ロ覃 れ 貂ろ 蟆 伎 .
  • 12. Separate Query from Modifier 螳 襴危 訖襷 螳豌伎 覲蟆渚 覃 襯 螳讌螻 蟆曙 , 螳 覃襯 襷れ伎 螳 襴危 螻 , 螳豌伎 襯 覲蟆 蟆 !! 螳 襴危 覿 螳讌螻 覃襯 覦 蟆る , 讌 覿覿螻 覲蟆渚 覿覿 覿襴伎 .
  • 13. Replace Error Code with Exception vs Replace Exception with Test vs Replace Exception with Test 覃螳 襯 企 豪 貊襯 螳讌螻 る , 碁ゼ 碁 !! 語覿 襾殊 蟆 譟郁唄 碁ゼ 讌螻 る , 語覿螳 襾殊 蟆 襦 覦蠖 !! ==> 碁 語 伎 伎 . 瑚 譟郁唄 ろ碁ゼ 覃 .
  • 14. 襴 .. 麹 企 覃 , 企 覲蟆 !! 豢螳 朱誤郁 覃 朱誤 豢螳 !! 朱誤郁 蠍語伎 螳豌企ゼ 蠍磯 蟆 螻 !! 覿 朱誤磯 覦襦 蟇 !! 企 螳 燕 覲蟆曙 る 一蟇 !! 煙 private!! 覃 るジ 企れ 焔讌 朱 private 朱 螳豢 !! !! 磯 語 螻褐 蟆襦 !!
  • 15. End.