一直都對於設計模式一知半解。所以找了個視頻好好的學習學習,做個學習筆記加深些記憶。
簡單工廠類真的是簡單,不用費什麼功夫,看到代碼就懂了。主要就是通過工廠類產生實例化對象。對於這個類的實現首先要想到2點:
1、工廠類產生實例,所以工廠類中必須要有 new 的邏輯。
2、抽象實例的父類,一個工廠產生不同的實例對象,如果按照一個方法對應一個實例,那和直接new 對象有和區別,所以必須要給所有的實例抽象出一個父類接口作爲唯一的返回值類型。這個父類負責描述所有實例的公共接口。
然後就直接來看代碼吧
第一步,抽象接口
public interface Fruit {
// 水果名
public void getName();
}
第二步,創建實例類
public class Apple implements Fruit{
public void getName(){
System.out.println("蘋果");
}
}
public class Banana implements Fruit{
public void getName(){
System.out.println("香蕉");
}
}
第二步,工廠類,最初new 對象,再改進到反射邏輯
public class FruitFactory {
// /*
// * 獲得Apple類的實例
// */
// public static Fruit getApple() {
// return new Apple();
// }
//
// /*
// * 獲得Banana類實例
// */
// public static Fruit getBanana() {
// return new Banana();
// }
/*
* get方法,獲得所有產品對象
*/
public static Fruit getFruit(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
// if(type.equalsIgnoreCase("apple")) {
// return Apple.class.newInstance();
//
// } else if(type.equalsIgnoreCase("banana")) {
// return Banana.class.newInstance();
// } else {
// System.out.println("找不到相應的實例化類");
// return null;
// }
Class fruit = Class.forName(type);
return (Fruit) fruit.newInstance();
}
}
不需要多少代碼,就完成了簡單的工廠模式。