1. 程式人生 > 實用技巧 >react hook學習總結

react hook學習總結

技術標籤:設計模式設計模式java

工廠模式

工廠模式(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:

執行結果

執行結果