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:40
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 [Re:metavige]
gongtow





發文: 13
積分: 0
於 2005-11-01 00:13 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
各位好,小弟我第一次發言,有不當的地方請指正
我覺得這個章節可以配合 Refactoring to pattern 的 Replace constructor with Creation methods 來看。
這裡的 static factory method 其實看成是創建物件的方法就好,和 Design Pattern 裡面的沒啥大關係。
Contructor 我認為有兩個大問題
1. 都用同一個名字,當你 new XXX() 下去看到五六種建構式,你哪知道用哪個比較好。
2. 只能傳回物件,而不能傳回 Interface (Sub Type)。
可是用 static factory method 可以解決這兩個問題,
1. 可以用各種不同名字來當作建構物件的方法名。譬如說有個撲克牌的 Class ,你可以用 getClubInstance() or createClubCard() 來取代 new Card(Card.Club)
2. 可以傳回 Interface 更是明顯的優點。你可以用
1
public List getCardList(String cards) 取代 public CardList CardList(String cards) 

後者只能傳回 CardList ,可是前者可以直接傳回任何 subType(CardList 實作的任何 interface type) 。
至於 singleton 的好處我倒覺得沒有那樣明顯。太多 Singleton 只會讓 Context 過大而不易使用。

配合 refactoring to pattern 來看,唯一的建構式可能是更好的選擇,如果需要大量的 sub Classes,就應該導入 Factory 了。


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
24860 [精華] [Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 1085 2003-10-01 14:51
22099 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 106 2003-10-01 15:46
22178 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 553 2003-10-01 16:03
20756 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 1120 2004-04-23 12:03
20751 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 1301 2004-04-23 14:37
20627 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 260 2004-04-23 17:59
21169 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 136 2004-04-23 18:05
15525 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 gongtow 782 2005-11-01 00:13
21903 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 77 2003-10-01 16:26
22457 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ingramchen 1532 2003-10-01 18:48
21969 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 273 2003-10-01 22:34
22320 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 441 2003-10-01 22:10
21834 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 81 2003-10-01 22:47
21881 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 815 2003-10-02 13:38
21868 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 iampoya 129 2003-10-02 14:57
21880 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 472 2003-10-02 16:08
21811 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 iampoya 461 2003-10-02 16:49
21877 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 1539 2003-10-02 17:43
21895 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 1114 2003-10-02 18:12
21903 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 1607 2003-10-02 17:53
21889 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 624 2003-10-02 18:08
21888 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 517 2003-10-02 18:21
21767 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 tempo 512 2003-10-03 09:35
21851 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 492 2003-10-02 20:42
21669 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 etman 466 2003-10-29 10:33
20584 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 LarryBank 27 2004-04-19 17:08
20551 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 150 2004-04-23 14:24
» 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