gof 抽象工廠 工廠方法 原型和Builder

2022-04-05 17:32:48 字數 1152 閱讀 5054

一、定義

抽象工廠:有乙個抽象的類。類中有多個介面來建立不同的物件。

工廠方法:有乙個類。類中有乙個介面來建立物件。

原型:類中有乙個clone介面來深度或者「半深淺」轉殖自身的物件。

builder:類中有多個介面來操作各種複雜的步驟。還有乙個介面用來或者通過各個步驟操作的組合而建立的物件。

二、部分應用情況

在剛開始的時候,一般使用工廠方法進行建立。在後期對需求進行擴充套件的時候視情況而定是需要使用何種擴充套件方法。

抽象工廠:

• 乙個系統要獨立於它的產品的建立、組合和表示時。

• 乙個系統要由多個產品系列中的乙個來配置時。

• 當你要強調一系列相關的產品物件的設計以便進行聯合使用時。

• 當你提供乙個產品類庫,而只想顯示它們的介面而不是實現時。

工廠方法:

• 當乙個類不知道它所必須建立的物件的類的時候。

• 當乙個類希望由它的子類來指定它所建立的物件的時候。

• 當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫助子類是**者這一資訊區域性化的時候。

三、部分實現情況

工廠方法:

//

方式1class

creator

};class creatorimpl1 : public

creator

};//

方式2class

creator ;

template

class createimpl : public

creator

};

view code

builder:

class

product;

class

builder

virtual

void opt2()

virtual product* create() = 0;};

class builderimpl1 : public

builder

virtual product*create()

private

:

void opt3() ;

};

view code

四、總結

//待續

工廠方法和抽象工廠

csdn沒有在移動上布網,最近移動校園網登不上csdn,今天終於能登上了,小草鳥就寫下最近在學的設計模式。工廠估計也差不多是用的最多的了,對於工廠方法和抽象工廠比較容易混,筆者在這裡說下自己的學習的一些理解。工廠模式 產品對於工廠,當然是生產產品的了,當然我們得有產品類,為了擴充套件性良好,先定義乙...

抽象工廠和工廠方法

工廠方法模式 乙個抽象產品類,可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類只能建立乙個具體產品類的例項。抽象工廠模式 多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。乙個抽象工廠類,可以派生出多個具體工廠類。每個具體工廠類可以建立多個具體產品類的例項。區...

簡單工廠方法,工廠方法,抽象工廠方法

以大話設計模式計算器為例 簡單工廠方法是由具體執行功能類,工廠類,客戶端構成,工廠類有case語句,負責建立不同的類,客戶端呼叫工廠類裡面的工廠方法,工廠類的工廠方法根據客戶端傳進去的引數new相應的類的物件返回給客戶端,客戶端得到返回的物件用該物件初始化該物件的成員變數最後呼叫該物件的方法執行計算...