設計模式——工廠模式

前言

工廠模式算是自己接觸到的最早的一個設計模式了,大二的時候在網易公開課上學習Java基礎。從那時起到現在工作快2個月了,也在各大框架上接觸工廠模式,在看《Head First設計模式》的時候,越來越覺得這本書不適合我了,不說題外話開始整體吧。

簡單工廠模式(Simple Factory Pattern)

簡單工廠模式又稱爲靜態工方法模式,這算是我覺得目前最好理解的一種設計模式了。簡單工廠方法並不在我們熟知的23種設計模式之中,根據網絡上的說法,這更像一種編程習慣。
定義:
你只需傳入一個正確的參數,就能按照你的意願創建出一個對象。例如:我想要一個NewDuck對象,那我只要傳入一個"NewDuck"字符串即可。

Duck和實現類略

public class DuckFactory {
    /**
     * 創建鴨子
     *
     * @param className  想創建的類名
     * @return  想創建類
     */
    public Duck createDuck(String className) {
        Duck duck;

        if ("NewDuck".equals(className)) {
        	//創建NewDuck類
            duck = new NewDuck();
        } else {
        	//創建GaGa類
            duck = new GaGa();
        }
        return duck;
    }
}

根據上面的代碼,我簡單畫一下UML的類圖(剛開始用VS畫的有點醜,別介意)
在這裏插入圖片描述

通過FactoryDuck可以創建出Duck的子類——NewDuck和GaGa,通過箭頭也可以看出,DuckFactory和子類的關係是依賴關係,當我們需要增加新的子類的時候,就需要對工廠類進行修改,當子類數量達到一定程度的時候,邏輯判斷和維護就會出現一定困難了。當所需要創建的子類類型少的時候,就可以使用簡單工廠模式了。

工廠方法模式

工廠接口模式

這兩個我這幾天補上去

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