工厂方法模式

108 阅读1分钟
/**
 * 工厂方法模式
 * 个人理解:也叫做多态工厂模式,相比于简单工厂模式,简单工厂模式是一个工厂生产多种产品,
 *  工厂方法是有多个工厂,每个工厂生产对应的产品。
 * 组件:抽象工厂类(Factory)、具体工厂类(ConcreteFactory,本例中FactoryA、FactoryB)、抽象产品类(Product)、
 *  具体产品类(ConcreteProduct,本例中ProductA、ProductB)、客户类(Client)
 * 注意点:需要客户端选择需要调用的具体工厂
 *
 */
public class FactoryMethodDesignPattern {

    public static void main(String[] args) {
        Product product = new FactoryA().create();
        product.display();
    }
}

interface Factory {
    /**
     * 生产产品
     * @return
     */
    Product create();
}

class FactoryA implements Factory {

    @Override
    public Product create() {
        return new ProductA();
    }
}

class FactoryB implements Factory {

    @Override
    public Product create() {
        return new ProductB();
    }
}

interface Product {

    /**
     * 展示产品
     */
    void display();
}

class ProductA implements Product{

    @Override
    public void display() {
        System.out.println("This is productA");
    }
}

class ProductB implements Product{

    @Override
    public void display() {
        System.out.println("This is productB");
    }
}