简单工厂模式SimpleFactory(静态工厂模式)
意图:专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式,由一个工厂类根据传入的参数,动态决定应该创建(反射机制来产生具体对象)哪一个产品类(这些产品类继承自一个父类或接口)的实例;系统只用一个产品类等级(hierarchy)就可以描述所有已有的产品类;
参与者:
工厂(Creator:被客户端直接调用,根据客户端指定传入的参数,动态创建客户端需要的对象)
抽象产品(Product是工厂方法模式所创立的对象的父类,或它们共同拥有的接口)
具体产品(ConcreteProduct)
关系图:
实例图:
JDK1.7.0SRC:
public final static DateFormat getDateTimeInstance()
优点:客户端免除直接创建产品对象的责任,仅仅负责调用生成后的产品对象。
缺点:一个产品接注定只具有单一的产品特性,不能处理多层次等级结构的产品,当创建新产品时需要在工厂类加入更多逻辑判断,不易于功能扩展。
注意点:
工厂类创建某个类实例时,其方法为static 方法