public abstract class inoodles
先來乙份蘭州拉麵(具體的產品類):
public class lznoodles extends inoodles
}
程式設計師加班必備也要吃泡麵(具體的產品類):
public class paonoodles extends inoodles
}
還有我最愛吃的家鄉的幹扣面(具體的產品類):
public class gankounoodles extends inoodles
}
準備工作做完了,我們來到一家「簡單麵館」(簡單工廠類),選單如下:
public class ******noodlesfactory
}}
簡單麵館就提供三種麵條(產品),你說你要啥,他就給你啥。這裡我點了乙份幹扣面:
/**
* 簡單工廠模式
*/ inoodles noodles = ******noodlesfactory.createnoodles(******noodlesfactory.type_gk);
noodles.desc();
輸出:
還是家裡的幹扣面好吃 6塊一碗
1 它是乙個具體的類,非介面 抽象類。有乙個重要的create()方法,利用if或者 switch建立產品並返回。
2 create()方法通常是靜態的,所以也稱之為靜態工廠。
1 擴充套件性差(我想增加一種麵條,除了新增乙個麵條產品類,還需要修改工廠類方法)
2 不同的產品需要不同額外引數的時候 不支援。
**
工廠模式 簡單工廠
簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...
工廠模式 簡單工廠
工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...