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

» JWorld@TW » Software Design  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Abstract Factory vs Builder Pattern
chrischang





發文: 166
積分: 2
於 2005-05-26 14:07 user profilesend a private message to usersend email to chrischangreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
Dear all

請問一下這兩個 Pattern 如何區分, 我怎麼看都覺得很類似, 很接近.
有高手可以解說一下嗎 ?

Tks !


reply to postreply to post
作者 Re:Abstract Factory vs Builder Pattern [Re:chrischang]
alien

小弟劣作一幅



發文: 772
積分: 6
於 2005-05-27 00:59 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
兩者差很遠呀...

Abstract Factory 是 Factory 的一種, 旨在有一系列的東西要被建立, 憑著替換 Factory 的 implementation, 便能生產該系列產品的另一 implementation

Builder Pattern 則是一份 data, 由 data 指導不同的 Builder 輸出成不同的結果.


reply to postreply to post

public class Alien {
public boolean isNewbie() {
return true;
}
public String toString() {
return "請大家多多指教";
}
}
作者 Re:Abstract Factory vs Builder Pattern [Re:chrischang]
chrischang





發文: 166
積分: 2
於 2005-05-27 11:58 user profilesend a private message to usersend email to chrischangreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
因為我看兩者的 Class Diagram , 不同的 Builder 也是用來產生不同的 Product
, 差別是 Builder 有個 Director 去指導某一 Builder 建構所要的產品, 但是從 Abstract Factory 來看, 也可以說一個類別使用某一工廠生產所要的產品. 所以我就 sample code 來看, 看起來很像.


reply to postreply to post
作者 Re:Abstract Factory vs Builder Pattern [Re:chrischang]
alien

小弟劣作一幅



發文: 772
積分: 6
於 2005-05-27 14:28 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
兩者解決的問題不同嘛.

雖然 class diagram 看起來有像, 但 design pattern 的重點是你要知道究竟這 pattern 的背後用意是什麼. 你要留意的不是果 (class diagram) 而是因 (pattern 的用意)

一個是替換工廠來建造不同的產品系列, 一個是 data 作為 director 指導不同 builder 來產生不同的結果. 兩者解決的東西是不同的. 單就結果來說, 前者的產品有繼承上的關係, 後者不必. 要說分別還有很多, 但那不是重點, 因為兩者不是解決類似問題的 pattern, 所以說兩者的分別沒有什麼意思, 就像要說 水杯 與 蘋果 的分別一樣嘛 Smile

Bridge Adapter Proxy Decorator 不也是類同? 重點是知道每個 pattern 的用意嘛 Smile


reply to postreply to post

public class Alien {
public boolean isNewbie() {
return true;
}
public String toString() {
return "請大家多多指教";
}
}
作者 Re:Abstract Factory vs Builder Pattern [Re:chrischang]
chrischang





發文: 166
積分: 2
於 2005-05-27 17:58 user profilesend a private message to usersend email to chrischangreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
謝謝 Alien 大大的解釋

因為 Builder 的範例用 Abstract Factory 去解釋似乎也說的通, 假如 Pattern 說明的前提沒有點出確定的重點, 就會覺得模擬兩可.


reply to postreply to post
作者 Re:Abstract Factory vs Builder Pattern [Re:chrischang]
alien

小弟劣作一幅



發文: 772
積分: 6
於 2005-05-28 11:18 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
Bingo.
所以看 pattern 第一樣不是看 pattern 本身, 而是看 pattern 企圖解決的是什麼問題. Smile

也由於前提不同, 所以看起來類似的pattern 的細節分別才有其意義 Smile


reply to postreply to post

public class Alien {
public boolean isNewbie() {
return true;
}
public String toString() {
return "請大家多多指教";
}
}
» JWorld@TW »  Software Design

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