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
話題被移動
該話題已被移動 - morchory , 2003-10-03 01:42
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) [Re:metavige]
tempo



版主

發文: 645
積分: 7
於 2003-10-03 10:04 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
metavige wrote:
物件如果是 immutable, 就可以被 reuse
1
String s = new String("metavige");

這樣每次都會創立一個新的物件
1
String s = "metavige";

這樣子就會只使用在 string pool 裡的同一個 "metavige"


這個例子可能不太明顯, 我建議舉 Boolean 的例子..
因為 Boolean 的值只有可能是 true 或是 false 而且是 immutable..
所以每次都用 new Boolean(true) 建立一個新的 instance 沒有意義..

這時候透過 Boolean 的 static factory method valueOf() 來建立(取回) 同一個 Boolean instance 就很可以避免每次建立新 Boolean instance..

Boolean.valueOf(boolean) 這個 static factory 的 psudo code 如下:
1
2
3
4
5
6
7
8
9
10
private static final Boolean TRUE = new Boolean(true);
private static final Boolean FALSE = new Boolean(false);
 
public static final Boolean valueOf(final boolean b)
{
  if( b )
    return TRUE;
  else
    return FALSE;
}



immutable classes 可以採用 static factory methods 以避免創建重複物件

如果創建物件, 會因為產生額外物件導致造成創建物件的代價提高, 那就建議採用一些方法來提升創建的效率
如 lazily initializing (這是條款48)
我也有點不太懂

如果創建物件代價並不是太高, 在創建物件的時候, 所產生的額外物件可以提高程式的清晰度、單純性與威力
但是因為怕創建一般 small objects 的成本太高, 而去維護自己的 object pool, 不明智∼
除非這些 object 創建的成本都很高
比如說 data connection


又一些小建議..Tounge


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
12927 [精華] [Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) metavige 508 2003-10-01 23:20
11178 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) tempo 1228 2003-10-03 10:04
11086 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) metavige 216 2003-10-03 14:03
7392 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) kcleung 388 2007-06-12 21:14
10968 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) popcorny 49 2003-10-03 14:32
11442 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) robinjam 12 2004-02-27 22:38
5534 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) spawnho 26 2007-11-23 20:14
5512 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) koji 120 2007-11-23 20:22
5585 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) hkdennis2k 406 2007-11-23 22:50
6134 Re:[Effective Java] 條款4 : 避免創建「重複物件」 (duplicate objects) hkdennis2k 78 2007-11-23 22:53
» 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