Abstract Factory Pattern
[caption id="attachment_138" align="alignnone" width="600" caption="Abstract Factory Pattern"]
上圖的 Abstract Factory ,讓我想想什麼場合會用到?
根據圖上的描述,在不同的場合中,有不同的實作品的話,那麼也許拿來作為DaoFactory的設置挺適合的,
對於不同的DB來源,我以不同的實作內容提供connection,這個做法在6年前我第一次看到洲平的ConnDB util時,
就有印象了。
Q1 :那好處是啥?
A1-1: 有效區隔出實作的類別,不會有互相混淆的情況
A1-2: 很容易的抽換物件工廠實作品
A11-3: 透過同一個工廠產出的物件彼此之間保持著高度的一致性
Q 2: 那到底什麼時候很需要來用這種pattern勒?
A2-1: 對於實作產出的物件要跟系統盡可能的抽離,降低耦合度的時候需要。
A2-2 : 需要透過設定檔方式去產出不同物件實體時可以使用。
A2-3 : 當我只想提供libs而不想透露出各項實作的方式時,可以使用。
A2-4 : The family of related objs is intended to be used toether, and this constraint needs to be enforced.(這還真不會翻譯)
J2EE當中有使用上跟Abstract Factory Pattern有關的是Data Access Object / Transfer Object Assembler。J2SE當中則是java.awt.Toolkit
沒有留言:
張貼留言