美文网首页
设计模式---(简单)工厂模式

设计模式---(简单)工厂模式

作者: 悠然望剑 | 来源:发表于2019-09-25 14:05 被阅读0次

工厂模式是设计模式中的“低门槛”,老少咸宜,屡试不爽。

工厂模式是在需要创建新对象实例时使用,一般是使用定义好的XxxFactory类调用createXxx()方法来创建实例,可以根据不同参数或方法名创建不同的实例,用来代替传统的new Xxx()。

各种开源框架的源代码中大量使用此模式创建实例。

如,著名的开源工作流框架Activiti,当需要创建流程模型校验器时,就要使用工厂模式获取

ProcessValidatorFactory processValidatorFactory = new ProcessValidatorFactory();

ProcessValidator defaultProcessValidator = processValidatorFactory.createDefaultProcessValidator();

这时候可能有小伙伴问了:传统的创建对象的方法好像比工厂模式更简单直接,明明一行代码可以搞定的事情,为什么非要先创建个工厂对象,再获取需要的对象?

要解决这个疑问,我们不妨从上面的例子源码中一探究竟。查看createDefaultProcessValidator()方法的具体实现

public ProcessValidator createDefaultProcessValidator() {

     ProcessValidatorImpl processValidator = new ProcessValidatorImpl();

     processValidator.addValidatorSet(new ValidatorSetFactory().createActivitiExecutableProcessValidatorSet());

     return processValidator;

}

我们发现,工厂类首先按照传统方法new了一个对象,然后给这个对象设置了一个属性值validatorSet;巧的是,指定属性值时也使用了工厂模式获取属性对象,那不妨再看看createActivitiExecutableProcessValidatorSet()的具体实现

public ValidatorSet createActivitiExecutableProcessValidatorSet() {

  ValidatorSet validatorSet = new ValidatorSet(ValidatorSetNames.ACTIVITI_EXECUTABLE_PROCESS);

  validatorSet.addValidator(new AssociationValidator());

  validatorSet.addValidator(new SignalValidator());

  validatorSet.addValidator(new OperationValidator());

  validatorSet.addValidator(new ErrorValidator());

  validatorSet.addValidator(new DataObjectValidator());

  ///

  return validatorSet;

}

这一看就明白了吧,使用工厂模式和传统方式的根本场景区别在于:如果在new一个对象后,还要进行一系列对象初始化工作(比如给属性字段赋值等),那就需要重构为工厂模式,让需要创建该对象实例的开发人员不需要知道创建细节就可以拿到可正常使用的对象;如果仅仅只需要new一下,比如new StringBuilder(),那就可以不使用工厂模式了。

相关文章

  • 设计模式-工厂模式

    设计模式1 设计模式2 工厂模式 工厂模式可简单的分为三类:简单工厂,工厂方法,抽象工厂 简单工厂模式 定义 简单...

  • 设计模式一、单例模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 简单单例(推荐...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 设计模式三、工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 工厂模式 在一...

  • 设计模式

    设计模式(视频总结) [TOC] 一、简单工厂模式(Simple Factory) 简单工厂模式: 简单工厂模式属...

  • iOS设计模式-工厂模式

    工厂模式分为简单工厂模式,工厂模式、抽象工厂模式三类。 简单工厂模式 1. 定义 简单工厂模式并不是常用的设计模式...

  • Android设计模式:工厂设计模式

    目录 简单工厂模式工厂方法模式抽象工厂模式 简单工厂模式 简单工厂模式是所有工厂模式的基础,不属于23种设计模式范...

  • 相近设计模式比较

    设计模式干货: 简单工厂模式 vs. 工厂模式 vs. 抽象工厂模式简单工厂和工厂模式区别? 简单工厂没有多个子类...

  • 三、创建型模型

    简单工厂模式 工厂方法模式 抽象工厂模式 单例模式 1.简单工厂模式 简单工厂模式并不属于23种设计模式。 不难看...

  • 简单工厂模式

    Android进阶之设计模式 简单工厂模式 简单工厂模式(又叫作静态工厂方法模式), 其属于创建型设计模式,但并不...

网友评论

      本文标题:设计模式---(简单)工厂模式

      本文链接:https://www.haomeiwen.com/subject/xmniuctx.html