簡單工廠,工廠模式,抽象工廠

2021-07-13 19:11:33 字數 3043 閱讀 8622

簡單工廠,工廠模式,抽象工廠

都屬於設計模式中的建立型模型,主要功能,幫助把物件的例項化部分抽取出來,增強系統擴充套件性.

1.簡單工廠

簡單工廠模式的工廠類一般是使用靜態方法,通過接收的引數的不同來返回不同的物件例項。

不修改**的話,是無法擴充套件的。

#include

using

namespace

std;

class

cperson

virtual

~cperson(){} };

class

cwhiteperson

: public

cperson

}; class

cblackperson

: public

cperson

}; class

cyellowperson

: public

cperson

}; class

cfactory

} //virtual

cperson*

creatperson() //

{} virtual

~cfactory(){} };

intmain()

2.工廠模式

工廠方法是針對每一種產品提供乙個工廠類。通過不同的工廠例項來建立不同的產品例項。

在同一等級結構中,支援增加任意產品。

#include

using

namespace

std;

class

cperson

virtual

~cperson(){} };

class

cwhiteperson

:public

cperson

}; class

cblackperson

:public

cperson

}; class

cyellowperson

:public

cperson

}; class

cfactory

virtual

~cfactory(){} };

class

cwhitepersonfactory

:public

cfactory

}; class

cblackpersonfactory

:public

cfactory

}; class

cyellowpersonfactory

:public

cfactory

}; intmain()

3.抽象工廠模式

抽象工廠是應對產品族概念的。比如說,每個汽車公司可能要同時生產轎車,貨車,客車,那麼每乙個工廠都要有建立轎車,貨車和客車的方法。

應對產品族概念而生,增加新的產品線很容易,但是無法增加新的產品。

#include

using

namespace

std;

class

cmale

virtual

~cmale(){} };

class

cfemale

virtual

~cfemale(){} };

class

cwhitemale

:public

cmale

}; class

cblackmale

:public

cmale

}; class

cyellowmale

:public

cmale

}; class

cwhitefemale

:public

cfemale

}; class

cblackfemale

:public

cfemale

}; class

cyellowfemale

:public

cfemale

}; class

cfactory

virtual

cfemale

*femaleperson

(){}

virtual

~cfactory(){} };

class

cwhitefactory

:public

cfactory

virtual

cwhitefemale

*femaleperson()

};class

cblackfactory

:public

cfactory

virtual

cblackfemale

*femaleperson()

};class

cyellowfactory

:public

cfactory

virtual

cyellowfemale

*femaleperson()

};int

main()

使用工廠模式,返回的例項一定是工廠建立的,而不是從其他物件中獲取的。

工廠模式返回的例項可以不是新建立的,返回由工廠建立好的例項也是可以的。

區別

簡單工廠

:用來生產同一等級結構中的任意產品。(對於增加新的產品,需要修改**)

工廠模式:用來生產同一等級結構中的固定產品。(支援增加任意產品)

抽象工廠

:用來生產不同產品族的全部產品。(對於增加新的產品,無能為力;支援增加產品族

.抽象工廠裡乙個工廠要生產多個產品,當抽象工廠生產的產品只有乙個時,就叫工廠模式了

簡單工廠 工廠模式 抽象工廠模式

簡單工廠模式 public class operation set public double numberb set public virtual double getresult 加減乘除類 class operationadd operation class operationsub oper...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...

簡單工廠模式 工廠模式 抽象工廠模式

簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...