设计模式之旅3--工厂方法模式

2018-07-11  本文已影响100人  小楠总

1. 定义

工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

工厂方法模式

2. 使用场景

3. 实现

抽象产品类:

public abstract class Product {

}

具体产品类:

public class ConcreteProduct1 extends Product {

}

public class ConcreteProduct2 extends Product {

}

抽象工厂类:

public abstract class Factory {

    public abstract <T extends Product> T createProduct(Class<T> clz);

}

具体工厂类:

public class ConcreteFactory extends Factory {
    @Override
    public <T extends Product> T createProduct(Class<T> clz) {
        Product product = null;
        try {
            product = (Product) Class.forName(clz.getName()).newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return (T) product;
    }
}

场景类:

public class Client {

    public static void main(String[] args) {
        ConcreteFactory factory = new ConcreteFactory();
        factory.createProduct(ConcreteProduct1.class);
    }

}

4. 优点

5. 缺点

上一篇下一篇

猜你喜欢

热点阅读