設計模式學習(JAVA)-工廠模式學習

設計模式學習(JAVA)-工廠模式學習

簡單工廠模式

簡單工廠模式是由一個工廠對象決定創建出那一種產品類的實例

簡單工廠模式:定義了一個創建對象的類,由這個類來封裝實例化對象的行爲

工廠方法模式

定義一個創建對象的抽象方法,由子類決定要實例化的對象,將對象實例化推遲到子類

抽象工廠模式

定義了一個interface用於創建相關或有依賴關係的對象簇,而無需指明具體的類。將工廠抽象成兩層,(抽象工廠)和(具體實現的工廠子類)。程序員根據創建對象類型使用對應的工廠子類。便於代碼的維護和擴展

難點:工廠方法模式和抽象工廠模式區別

舉個例子說明下:

用種蔬菜的例子來說明事實,最初的時候,由於規模小,只種植一種蔬菜,根菜類蔬菜,這個時候由於種植方式比較簡單,採用簡單工廠模式即可,主要目的是讓工人輕鬆,下達工廠種植即可,但是隨着種植廠的發展以及市場的需求,要增加一種蔬菜類型種植了,莖菜,由於莖菜與根菜種植方式不一致,就需要兩個專門的種植工廠來進行管理,那麼久採用工廠模式來管理,一個工廠負責一種作物的種植,這個時候產品可以理解爲仍然在一個層次。但是隨着科技的發展,我們逐步要種植轉基因與非轉基因食品了,在以前的蔬菜種類上又增加了一個層次,這個時候無法將其作爲一個層次來解決,所以必須採用抽象工廠的方式來解決。我用UML圖表示三種結構:

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述 上面的UML圖很明顯的就看出來了,抽象工廠可以創建多個產品類對象,如在種菜工廠中,有種根菜,種莖菜。工廠模式與抽象工廠模式以及簡單工廠模式只有在具體應用的時候,分析具體的產品層級,然後選擇相應的設計模式。
而在沒一個層次,種菜工人所關心的對象也不一樣,在簡單工廠模式下,工人要想到種植蘿蔔還是白菜,在工廠模式下,工人想到是種植根菜還是莖菜,而在抽象工廠模式下,則關心種植基因菜還是非基因菜
轉載自:https://blog.csdn.net/wyxhd2008/article/details/5597975

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章