Abstract Factory
,這是一個
Object Creational
范式。
原文
Intent
部分:
“
…without specifying their concrete classes
”,即對使用這個對象的用戶,不直接提供
new
操作;
一個對象的類型支持多種標準;并滿足用戶在多種標準之間自由地從一種標準轉換成另外一種標準。
?
為了實現這個范式,需要為將要實現的
widget
集合定義一個總的工廠抽象類,即:
AbstractFactory
,同時在這個工廠類中為每個
widget
定義一個類似于
CreateXXX
(
Create
表示要執行的活動,
XXX
表示被創建的
widget
的類型名稱)的方法;并對要實現的
widget
集合中的每個
widget
定義一個抽象類。
?
原文
Motivation
部分:
“
There’s also an abstract class for each kind of widget, and concrete subclasses implement widgets for specific look-and-feel standards.
”
?

由于對實現每個標準下的widget類型集合需要提供相應的WidgetFactory的實現,因此用戶需要實例化每個標準下的工廠實現。
為解決這個問題,在Java中存在典型的實現方式。就是定義上圖的上一部分,然后自己實現一個作為默認的;然后,在某個地方實現一個靜態的方法,以實例化真實的WidgetFactory;接下來給應用開發人員提供一個標準的系統屬性,比如-Djava.widget.factory=;這樣可實現靈活的撤換。
posted on 2006-06-21 22:57
靜靜的流水 閱讀(650)
評論(4) 編輯 收藏 引用 所屬分類:
Design Patterns