1. 程式人生 > 其它 >設計模式--抽象工廠模式

設計模式--抽象工廠模式

為了更好地理解抽象工廠模式,我們先引入兩個概念:

產品等級結構: 產品等級結構即產品的繼承結構。一個抽象類為手機,其子類為華為,小米,一加等。抽象手機與具體品牌構成一個產品等級結構。

產品族:產品族是指由同一個工廠生產的,位於不同產品等級結構中的一組產品。如小米工廠生產的小米手機、小米電視、小米手錶。

當一個工廠等級結構可以創建出分屬於不同產品等級結構的一個產品族中的所有物件時,抽象工廠模式比工廠方法模式更為簡單、更有效率,使用抽象工廠模式可以極大減少系統中類的個數。

基本流程:

  • AbstractFactory(抽象工廠): 它聲明瞭一組用於建立一族產品的方法,每一個方法對應一種產品。
abstract class AbstractFactory {
public abstract AbstractProductA createProductA(); //工廠方法一
public abstract AbstractProductB createProductB(); //工廠方法二
……
}
  • ConcreteFactory(具體工廠): 它實現了在抽象工廠中宣告的建立產品的方法,生成一組具體產品,這些產品構成了一個產品族,每一個產品都位於某個產品等級結構中。
class ConcreteFactory1 extends AbstractFactory {
    //工廠方法一
public AbstractProductA createProductA() {
    return new ConcreteProductA1();
}
 
//工廠方法二
public AbstractProductB createProductB() {
    return new ConcreteProductB1();
}
……
}