JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Software Design » Effective Java  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) [Re:TAHO]
moon_light





發文: 17
積分: 0
於 2005-07-04 01:43 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
TAHO wrote:
我不太理解你想表達啥說∼∼

這可以做一些責任劃分吧

對呼叫 method 者來說
如果怕自己傳進去的東西會變,又不能確定 method 會不會改到,就先 clone 一份再傳入啊
對寫作 method 者來說
如果沒必要改傳入的物件,就別改啊,幹嘛有事沒事去改傳入的東西?



其實是避免手誤

1
2
3
4
5
6
7
8
9
class Friend {
   private String name;
   //宣告大堆變數...
   
   public setName(String name){
        //一大堆的vaildation code..
        name = name; //!糟糕!
   }
}


有些時候在寫setter and getter的時候為了讓引數的目的一目了然會取和目標field 一樣的名字(而且要想個有意義的名字也不是易事), 但有時候一時手誤忘了加this(如果是call by value情形會更為糟糕, 整個method有白做的可能). 而可能造成的bug卻不是那麼易找出來. 如果此時作為parameter的name有加上final complier/IDE會馬上警告.
關於final和immutable Oreilly的Hardcore Java有更詳盡的解釋


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
11146 [Effective Java] 條款13 : 偏愛不變性 (immutability) metavige 997 2004-01-30 00:10
9651 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) tempo 232 2004-01-30 00:34
9645 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) TAHO 70 2004-01-30 01:13
9634 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) tempo 127 2004-01-30 01:22
9582 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) browser 107 2004-01-30 05:18
9622 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) tempo 1032 2004-01-30 12:13
9571 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Yoshi 139 2004-01-30 12:17
9564 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) tempo 195 2004-01-30 13:25
9527 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) anthonychen 225 2004-01-30 13:34
9511 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) saijone 996 2004-01-31 09:41
9592 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Duncan 247 2004-01-30 13:00
9491 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) metavige 131 2004-01-30 23:28
9497 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Millerlai 812 2004-01-31 01:45
9445 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Duncan 988 2004-02-01 02:59
9512 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Millerlai 2225 2004-02-01 18:45
9513 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) saijone 305 2004-01-31 09:07
9657 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) ingramchen 234 2004-01-31 12:27
9511 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) TAHO 558 2004-01-31 13:46
9496 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) ingramchen 77 2004-01-31 20:37
9546 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Millerlai 1688 2004-01-31 14:16
9470 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) TAHO 198 2004-01-31 15:00
9451 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Millerlai 647 2004-01-31 16:02
9463 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) tempo 293 2004-02-01 01:07
7976 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) moon_light 631 2005-07-04 01:43
9404 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Duncan 387 2004-02-01 03:07
9405 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) metavige 264 2004-02-02 01:04
9402 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) saijone 683 2004-02-02 06:35
9687 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Duncan 853 2004-02-02 10:32
9553 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) Yoshi 202 2004-01-30 09:28
9549 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) anthonychen 155 2004-01-30 10:33
9583 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) ymshin 166 2004-01-30 01:00
9511 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) TAHO 515 2004-01-30 14:04
9512 Re:[Effective Java] 條款13 : 偏愛不變性 (immutability) popcorny 136 2004-01-30 15:05
» JWorld@TW »  Software Design » Effective Java

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8