工厂方法模式

2020-05-24  本文已影响0人  定金喜

1.简单工厂模式

先看一下简单工厂模式


简单工厂

代码:

/**
*产品接口
*/
public interface Product {
}
/**
*具体产品1
*/
public class ConcretProduct1 implements Product{
}
/**
*具体产品2
*/
public class ConcretProduct2 implements Product{
}
/**
*工厂类
*/
public class SimpleFactory {

    public static ConcretProduct1 createConcretProduct1() {

        return new ConcretProduct1();
    }

    public static ConcretProduct2 createConcretProduct2() {

        return new ConcretProduct2();
    }
}

2.工厂方法模式

简单工厂模式大家比较熟悉也比较简单,但是简单工厂模式不符合设计模式中的开闭原则,当增加一个具体的产品时需要在工厂类增加方法。可以对工厂类进一步抽象:


工厂方法
public interface AbstractFactory {
    Product createProduct();
}
public class ConcretProduct1 implements Product{
}
public class ConcretProduct2 implements Product{
}
public interface Product {
}
public class Product1Factory implements AbstractFactory{

    @Override
    public Product createProduct() {
        return new ConcretProduct1();
    }
}
public class Product2Factory implements AbstractFactory{
    @Override
    public Product createProduct() {
        return new ConcretProduct2();
    }
}

这种设计后,当增加一个新的产品,需要新增一个具体产品类和一个工厂类,缺点是当产品较多时,创建的工厂类较多,所以简单工厂和工厂方法模式都可以进行选择。

上一篇 下一篇

猜你喜欢

热点阅读