react hook學習總結
阿新 • • 發佈:2020-12-27
工廠模式
工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
在工廠模式中,我們在建立物件時不會對客戶端暴露建立邏輯,並且是通過使用一個共同的介面來指向新建立的物件。
優點:1、一個呼叫者想建立一個物件,只要知道其名稱就可以了。 2、擴充套件性高,如果想增加一個產品,只要擴充套件一個工廠類就可以。 3、遮蔽產品的具體實現,呼叫者只關心產品的介面。
缺點:每次增加一個產品時,都需要增加一個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。
應用例項:1、您需要一輛汽車,可以直接從工廠裡面提貨,而不用去管這輛汽車是怎麼做出來的,以及這個汽車裡面的具體實現。
下面我們通過讀取配置檔案,利用反射機制,動態建立子類物件的方法來實現工廠模式。
實現
步驟1:
建立一個介面
public interface CarService {
void run();
}
步驟2:
建立實現介面的實體類
//建立第一個實現類 public class Benz implements CarService { String name = "Benz"; public void run(){ System.out.println(name+"正在路上飛馳。。。"); } }
//建立第二個實現類
public class BMW implements CarService{
String name = "BMW";
public void run(){
System.out.println(name+"正在路上飛馳。。。");
}
}
步驟3:
建立工廠類,工廠類作為主類,用於建立子類物件
public class CarFactory { public static void main(String[] args) { try{ //建立Properties物件 Properties properties = new Properties(); //類載入器讀取配置檔案 InputStream is = CarFactory.class.getClassLoader().getResourceAsStream("car.properties"); properties.load(is); is.close(); //通過Entry遍歷<迭代Entry> for (Entry<Object, Object> entry : properties.entrySet()) { //動態建立實現類物件,只要在配置檔案中的類,都會建立並執行 CarService cs = (CarService) Class.forName((String) entry.getValue()).newInstance(); //介面回撥 cs.run(); } }catch(Exception e){ e.printStackTrace(); } } }
步驟4:
建立car.properties配置檔案,存放實現類的全限定名
BMW=com.runoob.BMW
Bean=com.runoob.Benz
步驟5:
執行結果