具体实现
package com.designmode.simplefactory;
public interface Product {
}
package com.designmode.simplefactory;
public class ConcreteProduct implements Product{
public ConcreteProduct() {
System.out.println("i am ConcreteProduct");
}
}
package com.designmode.simplefactory;
public class ConcreteProduct1 implements Product{
public ConcreteProduct1() {
System.out.println("i am ConcreteProduct1");
}
}
package com.designmode.simplefactory;
public class ConcreteProduct2 implements Product{
public ConcreteProduct2() {
System.out.println("i am ConcreteProduct2");
}
}
package com.designmode.simplefactory;
public class SimpleFactory {
public Product createProduct(int type) {
if(type == 1) {
return new ConcreteProduct1();
}else if(type == 2) {
return new ConcreteProduct2();
}
return new ConcreteProduct();
}
}
主函数
package com.designmode.simplefactory;
/**
* 简单工厂模式:创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。
* Product:产品抽象类
* ConcreteProduct\ConcreteProduct1\ConcreteProduct2:具体产品
* SimpleFactory:制造产品
* Client:实例化 SimpleFactory生产产品。
* @author HeXiaoli
*
*/
public class Client {
public static void main(String[] args) {
SimpleFactory simpleFactory = new SimpleFactory();
Product product = simpleFactory.createProduct(2);
System.out.println();
}
}