設計模式學習-簡單工廠類
阿新 • • 發佈:2018-11-21
一直都對於設計模式一知半解。所以找了個視訊好好的學習學習,做個學習筆記加深些記憶。
簡單工廠類真的是簡單,不用費什麼功夫,看到程式碼就懂了。主要就是通過工廠類產生例項化物件。對於這個類的實現首先要想到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(); } }
不需要多少程式碼,就完成了簡單的工廠模式。