設計模式學習與整理 抽象工廠模式

2021-09-24 13:35:16 字數 2470 閱讀 3420

是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

(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模式,屬於物件建立型模式。抽象工廠模式與工廠方法模式最大的區別在於 工廠方法模式針對的是乙個產品等級結構,而抽象工廠模式則針對的是多個產品等級結構。所以在抽象工廠...