工廠方法模式(Factory Method)
常用的工廠方法模式是靜態工廠,利用static方法,作爲一種類似於常見的工具類Utils等輔助效果,一般情況下工廠類不需要實例化,只需通過類名調用靜態方法即可實現。
首先定義一個工廠類,裏面定義三個靜態方法
public class StaticFactory {
private StaticFactory(){}
public static Food getA(){ return new FoodA(); }
public static Food getB(){ return new FoodB(); }
public static Food getC(){ return new FoodC(); }
}
接着定義一個接口
public interface Food { }
三個實現子類
public class FoodA implements Food { public FoodA { } //無參構造器}
public class FoodB implements Food { public FoodB { } //無參構造器}
public class FoodC implements Food { public FoodC { } //無參構造器}
客戶端代碼
public class Client{
//客戶端代碼只需要將相應的參數傳入即可得到對象
//用戶不需要了解工廠類內部的邏輯。
public Food get(String name){
Food food = null ;
if ( name.equals("FoodA")) {
food = StaticFactory.getA();
}else if ( name.equals("FoodB")){
food = StaticFactory.getB();
}else {
food = StaticFactory.getC();
}
return food
}
}