一.
简单工厂设计模式又叫静态工厂方法模式,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品。不在GoF23种设计模式之列。
二.通用写法
父产品类(接口):
public interface IProduct {
public void doService();
}
子产品类:
public class AProduct implements IProduct {
public void doService() {
System.out.println("AProduct");
}
}
public class BProduct implements IProduct {
public void doService() {
System.out.println("doService");
}
}
工厂类:
public class SimpleFactory {
public static IProduct produce(int type){
switch (type){
case Const.A_CONST:
return new AProduct();
case Const.B_CONST:
return new BProduct();
}
return null;
}
}
常量接口:
public interface Const {
public static final int A_CONST = 1;
public static final int B_CONST = 2;
}
测试:
public class Test {
public static void main(String[] args) {
IProduct produce = SimpleFactory.produce(Const.A_CONST);
produce.doService();
}
}

三.UML类图

四.JDK源码中的简单工厂
Calendar类中的createCalendar方法:

简单工厂模式缺点:当产品增多时,工厂类代码会变得臃肿。