???? 抽象工廠模式是工廠方法的進(jìn)一步抽象與擴(kuò)充,它的類圖與工廠方法一樣。它與工廠方法的區(qū)別是抽象產(chǎn)品(Abstract Product?)不止一個(gè),從而構(gòu)成了一個(gè)或多個(gè)產(chǎn)品族(Product Factory).在只有一個(gè)產(chǎn)品族的情下,它退化成了工廠方法模式.。下面給出一個(gè)例子來說明;
?????? 微型計(jì)算機(jī)有兩種系列,即產(chǎn)品族有兩個(gè)PC(IBM系列)和Mac(MacIntosh系列)。
?????? 它的類圖如下(來源于參考文獻(xiàn)1)
?
?????



2



















?2



?3

?4



?5

?6

?7

?8



?9

10

11










RAM抽象產(chǎn)品與CPU類似.
在以下情況下,應(yīng)當(dāng)考慮使用抽象工廠模式。
1,一個(gè)系統(tǒng)應(yīng)當(dāng)不依賴于產(chǎn)品類實(shí)例被創(chuàng)立,組成,和表示的細(xì)節(jié)。這對于所有形態(tài)的工廠模式都是重要的。
2,這個(gè)系統(tǒng)的產(chǎn)品有多于一個(gè)的產(chǎn)品族。
3,同屬于同一個(gè)產(chǎn)品族的產(chǎn)品是設(shè)計(jì)成在一起使用的。這一約束必須得在系統(tǒng)的設(shè)計(jì)中體現(xiàn)出來。
最后,不同的產(chǎn)品以一系列的接口的面貌出現(xiàn),從而使系統(tǒng)不依賴于接口實(shí)現(xiàn)的細(xì)節(jié)。
其中第二丶第三個(gè)條件是我們選用抽象工廠模式而非其它形態(tài)的工廠模式的關(guān)鍵性條件。
?????
?????
參考文獻(xiàn): 1.http://www.yesky.com/20011203/207977.shtml
???????????????????2.<<java設(shè)計(jì)模式>>