C2 抽象工廠 Abstract Factory

2022-07-22 11:21:14 字數 925 閱讀 9082

提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類.

應用場景:

一系列相互依賴的物件有不同的具體實現。提供一種「封裝機制」來避免客戶程式和這種「多系列具體物件建立工作」的緊耦合

**示例:

abstract class abstractproducta

abstract class abstractproductb

class producta1 extends abstractproducta

class producta2 extends abstractproducta

class productb1 extends abstractproductb

class productb2 extends abstractproductb

abstract class abstractfactory

class concreatefactory1 extends abstractfactory

public function createproductb()

}class concreatefactory2 extends abstractfactory

public function createproductb()

}// 呼叫

$factory1 = new concreatefactory1();

$factory1->createproducta();

ps:與工廠方法相比,抽象工廠的介面中包含了所有產品的建立.

2 抽象工廠模式

參考 工廠方法模式和抽象工廠模式不好分清楚,他們的區別如下 工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多...

2 抽象工廠(Abstract Factory)

注 於 抽象工廠uml 析 抽象工廠模式 client使用者需要三步 1.建立工廠 一種工廠可以有多種功能 2.生產產品物件 3.使用物件方法。factory.h created by dell on 2019 10 15.ifndef abstract factory factory h defi...

2 抽象工廠模式

一 基本模式 1.抽象工廠,具體工廠,抽象產品,具體產品作為其要素 2.具體工廠生產出具有 抽象產品 協議方法的產品 3.生產出的具體產品細節對使用者透明,使用者只需知道抽象產品的協議即可。4.使用時 abstractproduct aproduct concretefactory.createpr...