是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
(1)系統需要為使用者提供多個物件,但不希望使用者直接用new運算子例項化這些物件,即希望使用者和建立物件脫耦。
(2)系統需要為使用者提供一系列物件,但只需要知道這些物件有哪些方法可用,不需要使用者知道這些物件的建立過程。
(1)抽象產品(product):乙個抽象類或介面,負責定義具體產品必須實現的方法;
(2)具體產品(concreteproduct):具體產品是乙個類,實現抽象產品的方法。
(3)抽象工廠(abstractfactory):乙個介面或抽象類,負責定義若干個抽象方法;
(4)具體工廠(concretefactory):具體工廠重寫抽象工廠中的抽象方法。
(1)抽象產品(褲子和上衣介面)
public inte***ce upperclothes
public inte***ce trousers
(2)具體產品
分別是西服上衣、牛仔上衣、西裝褲子和牛仔褲。
public class westernupperclothes implements upperclothes
@override
public int getchestsize()
@override
public int getheight()
@override
public string getname()
}
public class cowboyupperclothes implements upperclothes
@override
public int getchestsize()
@override
public int getheight()
@override
public string getname()
}
public class westerntrousers implements trousers
@override
public int getwaistsize()
@override
public int getheight()
@override
public string getname()
}
public class cowboytrousers implements trousers
@override
public int getwaistsize()
@override
public int getheight()
@override
public string getname()
}
(3)抽象工廠
public abstract class clothesfactory
(4)具體工廠(北京工廠和上海工廠)
public class beijingclothesfactory extends clothesfactory
@override
public trousers createtrousers(int waistsize, int height)
}
public class shanghaiclothesfactory extends clothesfactory
@override
public trousers createtrousers(int waistsize, int height)
}
(5)模式的使用(店鋪類)
public class shop
private void showmess()
}
main方法:
當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。
抽象工廠可以為使用者建立一系列相關的物件,使使用者和建立這些物件的類脫耦。
在抽象工廠模式中,可以隨時增加「具體工廠」為使用者提供一組相關的物件。
產品族擴充套件非常困難,要增加乙個系列的某一產品,既要在抽象的 creator 裡加**,又要在具體的裡面加**。
設計模式學習 抽象工廠模式
抽象工廠模式,提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。抽象工廠模式的優點與缺點 優點 易於交換產品系列,由於具體工廠類在乙個應用中只需要在初始化的時候出現一次,這樣使得改變乙個應用的具體工廠變得非常容易,它只需要改變具體工廠即可使用不同的產品配置。它讓具體的建立例項過程與...
抽象工廠模式 設計模式學習
抽象工廠模式 abstract factory 提供乙個建立一系列相關或相互依賴物件的介面,而無需指定他們具體的類。以下給出抽象工廠方法模式的uml圖 回到 大話設計模式 裡面的雙資料庫訪問的例子 namespace set private string name public string nam...
設計模式學習 抽象工廠模式
模式概述 提供乙個建立一系列相關或相互依賴物件的介面,而無需制定它們具體的類,抽象工廠 abstract factory 模式又稱為kit模式,屬於物件建立型模式。抽象工廠模式與工廠方法模式最大的區別在於 工廠方法模式針對的是乙個產品等級結構,而抽象工廠模式則針對的是多個產品等級結構。所以在抽象工廠...