工廠模式(Factory Pattern))

2021-09-28 20:41:22 字數 3260 閱讀 2713

工廠模式:將建立物件例項的工作交給工廠來完成!

三種實現方式:簡單工廠模式、工廠方法模式、抽象工廠模式

1.簡單工廠模式

建立所需的實體類
public

abstract

class

pizza

//準備原材料,不同種類披薩原材料不同,因此寫成抽象的

public

abstract

void

prepare()

;public

void

bake()

public

void

cut(

)public

void

box(

)}

public

class

greekpizza

extends

pizza

}

public

class

cheesepizza

extends

pizza

}

建立工廠類
//簡單的披薩工廠

public

class

******pizzafactory

else

if(pizzatype.

equals

("cheese"))

else

return pizza;

}}

public

class

pizzastore

}}

上述建立簡單工廠的模式為靜態工廠,還可以以下面的方式建立工廠

//簡單的披薩工廠

public

class

******pizzafactory2

else

if(pizzatype.

equals

("cheese"))

else

return pizza;

}}

public

class

pizzastore2

public

void

orderpizza

(string pizzatype)

}}

2.工廠方法模式

將建立物件例項的**放在子類中

建立所需實體類
public

class

bjcheesepizza

extends

pizza

}

public

class

bjchinesepizza

extends

pizza

}

public

class

nycheesepizza

extends

pizza

}

public

class

nychinesepizza

extends

pizza

}

建立抽象的披薩店
public

abstract

class

pizzastore

return pizza;

}}

紐約的披薩店
public

class

nypizzastore

extends

pizzastore

else

if(type.

equals

("chinese"))

else

}}

北京的披薩店
public

class

bjpizzastore

extends

pizzastore

else

if(type.

equals

("chinese"))

else

}}

主函式
public

class

main

}

3.抽象工廠模式
建立抽象工廠
public

inte***ce

abstractfactory

public

class

bjpizzafactory

implements

abstractfactory

else

if(type.

equals

("chinese"))

else

}}

public

class

nypizzafactory

implements

abstractfactory

else

if(type.

equals

("chinese"))

else

}}

public

class

pizzastore

public

void

setabstractfactory

(abstractfactory abstractfactory)

public pizza orderpizza

(string type)

return pizza;

}}

主函式
public

class

main

}

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

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

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

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

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

其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...