設計模式 簡單工廠模式

2021-09-01 12:52:05 字數 2075 閱讀 6674

/**

* 簡單工廠模式

* 果汁工廠類

* * @author 七夜雪

* @create 2018-11-22 10:14

*/public

class

juicefactory

elseif(

"orange"

.equalsignorecase

(name)

)return null;

}}

果汁介面 :

/**

* 果汁介面類

* @author 七夜雪

* @create 2018-11-22 10:15

*/public

inte***ce

juice

蘋果汁實現類 :

/**

* 蘋果汁

* * @author 七夜雪

* @create 2018-11-22 10:17

*/public

class

implements

juice

}

橙汁實現類:

/**

* 橙汁

* * @author 七夜雪

* @create 2018-11-22 10:15

*/public

class

orangejuice

implements

juice

}

上面的**就展示了乙個簡單工廠, 但是現在如果需要再增加新的果汁種類, 就必須修改工廠類, 違反了開閉原則, 比如說, 現在增加了一種西瓜汁, 所以可以使用反射對簡單工廠做一些擴充套件, 增加了反射獲取的方法, 修改後的工廠類**如下 :

/**

* 簡單工廠模式

* 果汁工廠類

* * @author 七夜雪

* @create 2018-11-22 10:14

*/public

class

juicefactory

elseif(

"orange"

.equalsignorecase

(name)

)return null;

}/**

* 使用反射擴充套件簡單工廠模式

* @param clazz

* @return

*/public juice getjuice

(class<

?extends

juice

> clazz)

catch

(instantiationexception e)

catch

(illegalacces***ception e)

return juice;

}}

西瓜汁類**:

/**

* 西瓜汁

* * @author 七夜雪

* @create 2018-11-22 10:23

*/public

class

watermelonjuice

implements

juice

}

測試類**:

/**

* 簡單工廠測試類

* * @author 七夜雪

* @create 2018-11-22 10:23

*/public

class

test

}

上面**的整體uml類圖如下 :

注 : 上面這個類圖是使用intellij idea的自動生成的uml類圖, 乙個很好用的功能

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...

設計模式(簡單工廠模式 工廠模式 抽象工廠模式)

當邏輯較為簡單時,可以直接建立對應的類。如下 include using namespace std class class banana class pear intmain 通過此 可以發現,使用者直接與客戶接觸,違背了dip 依賴倒轉 原則,過於麻煩,所以引出簡單工廠模式。include us...

設計模式 簡單工廠設計模式

請用任意一種物件導向語言實現計算器控制台程式,要求輸入兩個數和運算符號,得到結果。operation運算類 public class operation set public double numberb set public virtual double getresult 加減乘除類 using...