工厂模式初识

工厂模式:来一个加工一个。
    一个实例对象须要建立一个类,并在实现工厂中建立一个对应该类的对象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();
相关文章
相关标签/搜索