抽象工廠模式

抽象工廠模式的目的

創(chuàng)建對像,在工廠方法模式中基协,一個工廠只生產(chǎn)一種對象歌亲,當(dāng)產(chǎn)品對象過多時,會產(chǎn)生比較多的工廠類.而且實際生產(chǎn)中澜驮,一個工廠也不僅僅生產(chǎn)一種產(chǎn)品陷揪,而是生產(chǎn)一類產(chǎn)品,比如一個家電廠杂穷,可能會生產(chǎn)電視悍缠,洗衣機,電冰箱等產(chǎn)品.在抽象工廠模式中耐量,一個工廠可以生產(chǎn)多種產(chǎn)品對象.

抽象工廠方法概述

負責(zé)對象創(chuàng)建飞蚓,一個工廠可以生產(chǎn)多個對象,提供一個創(chuàng)建一系列相關(guān)或相互依賴的接口廊蜒,無需指定具體接口.

要點

  • 產(chǎn)品等級結(jié)構(gòu)趴拧,產(chǎn)品的繼承結(jié)構(gòu).比如汽車,汽車是一個抽象類山叮,.而寶馬著榴,奔馳,蘭博基尼則是具體的汽車品牌.抽象汽車和具體的汽車品牌構(gòu)成了一個產(chǎn)品等級結(jié)構(gòu).抽象汽車是父類屁倔,具體汽車品牌是子類.
  • 產(chǎn)品族脑又,同一個工廠生產(chǎn)的不同產(chǎn)品.比如IPhone,IPad,Mac 是蘋果的不同產(chǎn)品,它們是是一個產(chǎn)品族.
  • 工廠生產(chǎn)多個不同的具體產(chǎn)品锐借,可以一個產(chǎn)品族的所有對象.
  • AbstractFactory 抽象工廠.聲明創(chuàng)建產(chǎn)品族的方法问麸,每一個方法對應(yīng)一種產(chǎn)品.
  • ConcreteFactory 具體工廠,實現(xiàn)抽象工廠中創(chuàng)建產(chǎn)品的方法瞎饲,生產(chǎn)具體產(chǎn)品口叙,這些產(chǎn)品構(gòu)成一個產(chǎn)品族.
  • AbstractProduct 抽象產(chǎn)品 ,為產(chǎn)品聲明接口嗅战,定義產(chǎn)品所有具有的方法.
  • Product 具體產(chǎn)品.工廠生產(chǎn)的具體產(chǎn)品妄田,實現(xiàn)產(chǎn)品中聲明的方法.

實現(xiàn)

  • 抽象工廠俺亮,聲明創(chuàng)建產(chǎn)品族的方法,可以是接口疟呐,抽象類以及具體類.
public interface AbstractFactory{
  AbstractProductA createProductA();//工廠方法A 
  AbstractProductB createProductB();//工廠方法B 
}
  • 具體工廠脚曾,每個具體的工廠方法生產(chǎn)具體的對象,一組具體工廠方法生產(chǎn)一個產(chǎn)品族.
public class Factory1 implements  AbstractFactory{
  public AbstractProductA createProductA(){
    return new ProductA1();
  }

  public AbstractProductB createProductB(){
    return new ProductB1();
  }
}

抽象工廠模式的使用場景

  • 一個系統(tǒng)中启具,產(chǎn)品類實例的創(chuàng)建本讥,組合和表達等不影響系統(tǒng),用戶不關(guān)心產(chǎn)品的創(chuàng)建過程.
  • 系統(tǒng)中有多個產(chǎn)品族鲁冯,但是每次只使用其中某個一個產(chǎn)品族.
  • 屬于同一個產(chǎn)品族的產(chǎn)品在一起使用
  • 系統(tǒng)提供產(chǎn)品類的庫拷沸,所有的產(chǎn)品有相同的接口,產(chǎn)品等級結(jié)構(gòu)穩(wěn)定薯演,設(shè)計內(nèi)完成后撞芍,不會改變產(chǎn)品等級結(jié)構(gòu).
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市跨扮,隨后出現(xiàn)的幾起案子序无,更是在濱河造成了極大的恐慌,老刑警劉巖衡创,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帝嗡,死亡現(xiàn)場離奇詭異,居然都是意外死亡璃氢,警方通過查閱死者的電腦和手機哟玷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來一也,“玉大人碗降,你說我怎么就攤上這事√燎兀” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵动看,是天一觀的道長尊剔。 經(jīng)常有香客問我,道長菱皆,這世上最難降的妖魔是什么须误? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮仇轻,結(jié)果婚禮上京痢,老公的妹妹穿的比我還像新娘。我一直安慰自己篷店,他們只是感情好祭椰,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布臭家。 她就那樣靜靜地躺著,像睡著了一般方淤。 火紅的嫁衣襯著肌膚如雪钉赁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天携茂,我揣著相機與錄音你踩,去河邊找鬼。 笑死讳苦,一個胖子當(dāng)著我的面吹牛带膜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸳谜,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼膝藕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了卿堂?” 一聲冷哼從身側(cè)響起束莫,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎草描,沒想到半個月后览绿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡穗慕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年饿敲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逛绵。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡怀各,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出术浪,到底是詐尸還是另有隱情瓢对,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布胰苏,位于F島的核電站硕蛹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏硕并。R本人自食惡果不足惜法焰,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倔毙。 院中可真熱鬧埃仪,春花似錦、人聲如沸陕赃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至毙玻,卻和暖如春豌蟋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背桑滩。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工梧疲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人运准。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓幌氮,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胁澳。 傳聞我的和親對象是個殘疾皇子该互,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容