玩轉工廠模式

2021-08-27 15:14:23 字數 944 閱讀 6968

最近在看《headfirst 設計模式》,發現簡單工廠,工廠模式,抽象工廠模式這三者的區別於聯絡不是太好理解,經過研究之後,寫幾個例子,加深一下印象。

package go.derek;

//這是乙個抽象工廠類

public abstract class ca***ctory

//寶馬工廠,繼承了抽象工廠類

class bmwfactory extends ca***ctory

//寶馬的工廠方法

public car create(string type)

else if(type.equals("765li"))

else

return null; }}

//奧迪工廠,繼承了抽象工廠類

class audifactory extends ca***ctory

//奧迪的工廠方法

public car create(string type)

else if(type.equals("a6l"))

else

return null; }}

//小汽車的抽象類

abstract class car

//寶馬745li

class bmw_745li extends car

}//寶馬765li

class bmw_765li extends car

}//奧迪a8l

class audi_a8l extends car

}//奧迪a6l

class audi_a6l extends car

}

package go.derek;

//測試類,模擬客戶端呼叫

public class factorytest

}

執行結果如下

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

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

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

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

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

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