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

» JWorld@TW » Software Design » Effective Java  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
話題被移動
該話題已被移動 - morchory , 2003-10-03 01:40
如果您尚不清楚該話題被移動的原因,請參考論壇規則以及本版公告或者聯系本版版主。
本主題所含的標籤
無標籤
作者 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 [Re:metavige]
davidlovesmoly





發文: 7
積分: 0
於 2004-04-23 18:05 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
And Larry, sorry that I didn't found you've left message.

I'll find the chance why I thougt your question is cool!

Regards!
David


reply to postreply to post
作者 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
go to first page go to previous page  1   2  go to next page go to last page
» JWorld@TW »  Software Design » Effective Java

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

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8