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:davidlovesmoly]
metavige

麥塔.米奇

版主

發文: 2133
積分: 10
於 2004-04-23 14:37 user profilesend a private message to usersend email to metavigereply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
davidlovesmoly wrote:
各位朋友好!

略....

我想 metavige 應該是打錯字或可能誤解了"第三個好處"中作者提出的
"第一個"實例:
應該是java.util.Collections 而不是 Collection.

對照一下Collections的文件, 再看一下原書的敘述, 我想應該就ok了吧...

沒錯∼我看了 API 文件,應該是 java.util.Collections
回家再參考原文的部分...... Blush


此外原來提到的缺點, 首先我覺得前面的朋友們舉的例子似乎不太恰當...

作者在此處所指的"classes without public or protected constructors
can not be subclassed" 應該是呼應 "上一段" 所提的諸多好處
(static factory method 可傳回符合某特定 interface 的物件, 而此物件
的實際的產生或實作細節不需被公開. 使用者不知道此物件實際上屬於
哪個特定的Class 亦無所謂. java.utl.Calendar不就是個挺好的例子)
硬要使用這裡提出的Shape的例子, 那就變成了Rectangle, Cirle,...
其他Shape的徒子徒孫 的constructor 不被公開(意即僅有private
的constructors). 這樣programmer 當然不好以繼承的方式擴充Rectangle,
Circle,...

不過這裡 ingramchen 所提出的範例,並沒有撰寫 Rectangle, Circle 等的 Constructor
但並不代表這幾個 Class 不能被繼承
當然,在這邊討論的並不是針對被實體化的 Classes
應該是針對該物件若有建構式,考慮使用 static factory method 來取代
但若有 subclasses,處理的方法只是有稍微不一樣而已
就如您所提出的 Calendar 就是一個以 static factory method 來取代建構式的範例n但這與 ingramchen 所提出的範例卻又有不相同的部分
所以要將這兩個例子拿來作比較似乎有點不好


略.....

我剛才進來時瞄了一下列表似乎已經有人在討論(item 14)了

略.....


每個主題其實都有其關連性存在,分開來討論或許會有其偏差性
或許條款14與條款1合併起來討論,就會有不同的想法也說不定
因為複合與繼承建構式是有一點關係的∼


reply to postreply to post
請各位新手參考 論壇規範Java 新手 FAQ
話題樹型展開
人氣 標題 作者 字數 發文時間
24862 [精華] [Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 1085 2003-10-01 14:51
22102 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 106 2003-10-01 15:46
22181 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 553 2003-10-01 16:03
20758 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 1120 2004-04-23 12:03
20754 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 1301 2004-04-23 14:37
20629 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 260 2004-04-23 17:59
21171 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 davidlovesmoly 136 2004-04-23 18:05
15527 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 gongtow 782 2005-11-01 00:13
21905 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 77 2003-10-01 16:26
22459 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ingramchen 1532 2003-10-01 18:48
21971 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 273 2003-10-01 22:34
22322 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 441 2003-10-01 22:10
21836 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 ymshin 81 2003-10-01 22:47
21883 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 815 2003-10-02 13:38
21870 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 iampoya 129 2003-10-02 14:57
21882 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 472 2003-10-02 16:08
21814 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 iampoya 461 2003-10-02 16:49
21879 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 1539 2003-10-02 17:43
21897 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 1114 2003-10-02 18:12
21906 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 1607 2003-10-02 17:53
21891 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 Duncan 624 2003-10-02 18:08
21892 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 wctang 517 2003-10-02 18:21
21770 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 tempo 512 2003-10-03 09:35
21853 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 metavige 492 2003-10-02 20:42
21671 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 etman 466 2003-10-29 10:33
20586 Re:[Effective Java] 條款1 : 考慮以 "static factory methods" 取代建構式 LarryBank 27 2004-04-19 17:08
20553 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