工廠模式初識

工廠模式:來一個加工一個。
    一個實例對象須要建立一個類,並在實現工廠中建立一個對應該類的對象java

//建立一個獲取形狀類型的對象(根據傳值返回不一樣的類的對象)
	public Shape getShape(String shapeType){
		if(shapeType == null){
			return null;
		}
		if(shapeType.equalsIgnoreCase("circle")){
			return new Circle();
		}else if(shapeType.equalsIgnoreCase("square")){
			return new Square();
		}else{
			return null;
		}
	}
//改進:利用反射能夠去掉對實現工廠的修改,只須要新增類就能夠
    public static <T> T getClass(Class<? extends T> clazz) {
        T obj = null;
        try {
            obj = (T) Class.forName(clazz.getName()).newInstance();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return obj;
    }
//    調用的時候能夠利用多肽去掉類型強制轉換
    Rectangle rect = ShapeFactory.getClass(Rectangle.class);
    rect.draw();
    Shape square = ShapeFactory.getClass(Square.class);
    square.draw();
相關文章
相關標籤/搜索