一.
简单工厂设计模式又叫静态工厂方法模式,简单工厂模式有一个具体的工厂类,可以生成多个不同的产品。不在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方法:
简单工厂模式缺点:当产品增多时,工厂类代码会变得臃肿。