抽象工廠是負責多個配套類的統一建立,某些類我希望他們配套使用,比如說衣服,當我指定了要穿西裝,如果我要穿衣服(?),那麼我希望建立的是配套的西裝上衣和西裝褲子,而不是西裝上衣配個大褲衩子。
// coat.h
//衣服抽象類
#pragma once
class
coat
//褲子抽象類
#pragma once
class
pant
#pragma once
#include
"coat.h"
#include
//西裝上衣
class
suitcoat final :
public coat
}//背心
class
tank final :
public coat
}
#pragma once
#include
"pants.h"
#include
//西裝褲子
class
suitpants final :
public pants
}//運動褲
class
sportsshorts final :
public pants
}
#pragma once
#include
"coat.h"
#include
"pants.h"
//抽象工廠類
class
abstractfactory
//西裝工廠
class
suitfactory final :
public abstractfactory
//運動裝工廠
class
sportsfactory final :
public abstractfactory
#include
"factory.h"
#include
"coatimpl.h"
#include
"pantsimpl.h"
virtual coat* suitfactory::
getcoat
() override
virtual pants* suitfactory::
getpants
() override
virtual coat* sportsfactory::
getcoat
() override
virtual pants* sportsfactory::
getpants
() override
#include
"factory.h"
intmain()
可以看到,抽象工廠模式,當指定了工廠之後,生產的類一定配套。所以抽象工廠模式是負責生產多個配套使用的類。
抽象工廠和工廠的區別,在於工廠模式只負責一種物件的生成,而抽象工廠負責多個配套類的生成。
設計模式 C 設計模式 抽象工廠模式
設計模式 物件導向設計七大原則 設計模式 設計模式概念和分類 設計模式 c 設計模式 單例模式 設計模式 c 設計模式 工廠方法模式 設計模式 c 設計模式 抽象工廠模式 設計模式 c 設計模式 建造者模式 設計模式 c 設計模式 原型模式 抽象工廠模式包含如下角色 abstractfactory ...
c 設計模式(抽象工廠模式)
good 定義了乙個建立一系列相關或相互依賴的介面,而無需指定它們的具體類。用於交換產品系列,如access sql server 產品的具體類名被具體工廠的實現分離 例 include include include using namespace std 使用者抽象介面 class iuser ...
C 設計模式 抽象工廠模式
為建立一組相關或相互依賴的物件提供乙個介面,而且無需指定他們的具體類。抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠模式是指當有多個抽象角色時,使用的一種工廠模式。抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。應用...