定义
简单工厂模式又称静态工厂模式. 可以根据参数的不同返回不同类的实例. 定义一个类来创建其它类的实例.
角色
简单工厂模式包含如下角色
Factory: 工厂角色
Product: 抽象产品角色
ConcreteProduct: 具体产品角色
这里写图片描述
简单实例
- public abstract class Produce{
- public abstract void m1()''
- }
- public class ConcreteProduct extends Produce{
- public void m1(){}
- }
- public class Factory{
- public static Produce methodA(){
- return new ConcreteProduct();// 创建具体产品
- };
- }
场景应用
简单工厂模式在 jdk 有不少应用, 比如
- java.text.DateFormat
- public final static DateFormat getDateInstance();
- public final static DateFormat getDateInstance(int style);
- public final static DateFormat getDateInstance(int style,Locale
- locale);
简单工厂模式适用场景:
工厂类负责创建的对象比较少; 客户端只知道传入工厂类的参数, 对象创建过程不会影响客户端代码
优缺点
优点: 简单工厂模式将对象创建和本身业务处理分开, 降低了耦合
缺点: 工厂类集中了所有产品创建逻辑, 一旦新增产品就得修改工厂类
来源: http://www.jianshu.com/p/0ce7306d7946