抽象工廠模式定義:
抽象工廠模式(Abstract Factory Pattern)是圍繞一個(gè)超級(jí)工廠創(chuàng)建其他工廠概耻。該超級(jí)工廠又稱為其他工廠的工廠。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式瓶佳。
在抽象工廠模式中哨颂,接口是負(fù)責(zé)創(chuàng)建一個(gè)相關(guān)對(duì)象的工廠车柠,不需要顯式指定它們的類。每個(gè)生成的工廠都能按照工廠模式提供對(duì)象骡尽。
提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口忿檩,而無(wú)需指定它們具體的類。
主要解決接口選擇的問(wèn)題爆阶。
系統(tǒng)的產(chǎn)品有多于一個(gè)的產(chǎn)品族燥透,而系統(tǒng)只消費(fèi)其中某一族的產(chǎn)品。
在一個(gè)產(chǎn)品族里面辨图,定義多個(gè)產(chǎn)品班套。
在一個(gè)工廠里聚合多個(gè)同類產(chǎn)品。
實(shí)例
我們將創(chuàng)建 Shape 和 Color 接口和實(shí)現(xiàn)這些接口的實(shí)體類故河。下一步是創(chuàng)建抽象工廠類 AbstractFactory吱韭。接著定義工廠類 ShapeFactory 和 ColorFactory,這兩個(gè)工廠類都是擴(kuò)展了 AbstractFactory。然后創(chuàng)建一個(gè)工廠創(chuàng)造器/生成器類 FactoryProducer理盆。
AbstractFactoryPatternDemo痘煤,我們的演示類使用 FactoryProducer 來(lái)獲取 AbstractFactory 對(duì)象。它將向 AbstractFactory 傳遞形狀信息 Shape(CIRCLE / RECTANGLE / SQUARE)猿规,以便獲取它所需對(duì)象的類型衷快。同時(shí)它還向 AbstractFactory 傳遞顏色信息 Color(RED / GREEN / BLUE),以便獲取它所需對(duì)象的類型姨俩。
總結(jié):
當(dāng)一個(gè)產(chǎn)品族中的多個(gè)對(duì)象被設(shè)計(jì)成一起工作時(shí)蘸拔,它能保證客戶端始終只使用同一個(gè)產(chǎn)品族中的對(duì)象。
產(chǎn)品族擴(kuò)展非常困難环葵,要增加一個(gè)系列的某一產(chǎn)品调窍,既要在抽象的 Creator 里加代碼,又要在具體的里面加代碼张遭。
1邓萨、QQ 換皮膚,一整套一起換菊卷。 2先誉、生成不同操作系統(tǒng)的程序。
參考:菜鳥教程