定義
定義一個工廠類,他可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類
- 在簡單工廠模式中用於被創建實例的方法通常爲靜態(static)方法,因此簡單工廠模式又被成爲靜態工廠方法(Static Factory Method)
- 需要什麼,只需要傳入一個正確的參數,就可以獲取所需要的對象,而無需知道其實現過程
- 此模式並不屬於23種設計模式,但它卻是工廠模式的基礎
簡單工廠模式的圖解如下
- 當再新增一個水果香蕉時,只需要改造StaticFactory類代碼即可
- 當其他人進行吃水果的運作時,無須再做改變
簡單工廠模式代碼演示:
/**
* 簡單工廠模式 --- 靜態工廠模式
*/
public class StaticFactory {
public static final int TYPE_APPLE = 1;//蘋果
public static final int TYPE_ORANGE = 2;//桔子
public static final int TYPE_BANANA = 3;//香蕉
public static Fruit getFruit(int type){
if(TYPE_APPLE == type){
return new Apple();
} else if(TYPE_ORANGE == type){
return new Orange("dujaiyu",80);
} else if(TYPE_BANANA == type){
return new Banana();
}
return null;
}
/**
* 多方法工廠
* @return
*/
public static Fruit getFruitApple(){
return new Apple();
}
public static Fruit getFruitOrange(){
return new Orange("dujaiyu",80);
}
public static Fruit getFruitBanana(){
return new Banana();
}
}