一、概念
1.1、定义
又称为静态工厂方法(Static Factory Method)模式,可以根据参数Key的创建并返回不同的实例。

SimpleFactory.png
- Factory,工厂类: 负责根据不同入参,创建不同的实例对象
- Product,产品抽象类: 产品类的抽象类或者接口,方便产品的扩展
- ConcreteProduct,具体产品类: 具体扩展的产品类
1.2、解决的问题
- 解决问题:对继承同一个抽象基类或者接口的产品类的实例化过程进行封装。
二、模式的应用和优缺点
2.1、应用场景
- 应用实例:JDK类库中广泛使用了简单工厂模式,如工具类
java.text.DateFormat,它用于格式化一个本地日期或者时间。public final static DateFormat getDateInstance(int style); - 应用实例:Java加密技术,获取不同加密算法的密钥生成器
KeyGenerator keyGen=KeyGenerator.getInstance("DESede");
2.2、优缺点
优点:
对类的实例化过程的统一封装,提高代码可复用性,降低系统耦合度。
可以将传入的参数进行写入文件,动态的配置类的创建过程。缺点:优点即是缺点,类实例化全部集中于一个类方法中,扩展变的不容易,也不符合开闭原则。