简单工厂设计模式

75 阅读1分钟
**
 * 简单工厂模式
 * 个人理解:非23种设计模式,是工厂模式的最简单应用
 * 组件:工厂类(Factory)、抽象产品类(Product)、
 *  具体产品类(ConcreteProduct,本例中ProductAProductB)、客户类(Client)
 * 注意点:工厂类提供静态方法提供产品(构造器最好private)
 *
 */
public class SampleFactoryDesignPattern {

    public static void main(String[] args) {
        //实际开发中,参数可以改为从配置文件中获取
        Product product = Factory.create(Product.PRODUCT_B);
        product.display();
    }
}

class Factory {
    private Factory(){}

    /**
     * 根据产品类型,获取具体产品
     * @param type 产品类型
     * @return
     */
    public static Product create(int type) {
        if (type == Product.PRODUCT_A) {
            return new ProductA();
        } else if (type == Product.PRODUCT_B) {
            return new ProductB();
        } else {
            throw new IllegalArgumentException();
        }
    }
}

interface Product {
    int PRODUCT_A = 1;
    int PRODUCT_B = 2;

    /**
     * 展示产品
     */
    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");
    }
}