3.工厂方法模式--应用最广泛的模式

2019-03-04  本文已影响0人  君袅

一.定义:

定义一个用于创建对象的接口,由子类决定实例化哪个类.(Factory Pattern)
创建型设计模式之一,应用十分广泛.

二.使用场景:

在任何需要生成复杂对象的地方,都可以使用工程方法模式,用new就可以完成创建的对象无需使用工厂方法模式.

image.png

产品类

public abstract class Product {
    public abstract void method();
}

产品A

public class ProductA extends Product {
    @Override
    public void method() {
        Log.d("zll", "我是产品A ");
    }
}

产品B

public class ProductB extends Product {
    @Override
    public void method() {
        Log.d("zll", "我是产品B: ");
    }
}

创建工厂

public abstract class TFactory {
    public abstract <M extends Product> M createProduct(Class<M> cls);
}
public class TCreateFactory extends TFactory {
    @Override
    public <M extends Product> M createProduct(Class<M> cls) {
        M product = null;
        try {
            //反射获取对象
            product = (M) Class.forName(cls.getName()).newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return product;
    }
}

实现

        TCreateFactory factory = new TCreateFactory();
        ProductA product = factory.createProduct(ProductA.class);
        product.method();
        ProductB product1 = factory.createProduct(ProductB.class);
        product1.method();
上一篇下一篇

猜你喜欢

热点阅读