Factory Method(工厂方法)

意图:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

        Factory Method使一个类的实例化延迟到其子类。

结构:

代码示例:

interface Factory{
    public Product createProduct();
}
class FactoryA implements Factory{
    @Override
    public Product createProduct() {
        return new ProductA();
    }
}
class FactoryB implements Factory{
    @Override
    public Product createProduct() {
        return new ProductB();
    }
}
interface Product{
    public void info();
}
class ProductA implements Product{
    @Override
    public void info() {
        System.out.println("产品A");
    }
}
class ProductB implements Product{
    @Override
    public void info() {
        System.out.println("产品B");
    }
}

 测试代码:

public class factoryMethod {
    public static void main(String[] args) {
        //编译看左边,运行看右边
        Factory factoryA = new FactoryA();
        Product productA = factoryA.createProduct();
        productA.info();

        Factory factoryB = new FactoryB();
        Product productB = factoryB.createProduct();
        productB.info();
    }
}

运行结果:

产品A
产品B