美文网首页
工厂设计模式

工厂设计模式

作者: 温岭夹糕 | 来源:发表于2019-12-28 15:02 被阅读0次

单例设计模式:https://www.jianshu.com/p/0f36f06d4106

原型设计模式:https://www.jianshu.com/p/8301cea8c99b

关于工厂设计模式,我的理解是:

为管理多个功能相似的业务。

打个比方


1.简单工厂

先给业务定义一个标准(接口),以后所有的子业务都需要实现该标准

实现简单工厂类 实现简单工厂类的调用 整体逻辑结构

简单工厂类的逻辑结构很简单,对子业务定义结构,统一一个工厂类生成业务。

但是当我们要新增一个业务的时候,需要修改统一的工厂类。

2.工厂方法工厂类

除了给子业务定义一个接口,还要给工厂方法定义一个接口,不同的工厂产生不同的业务,这样当我们新增一个业务的时候只需要新增一个工厂即可

工厂方法工厂类

使用场景大多为,不知道要使用到哪些类的时候,把具体产品的实现交给子类。

逻辑结构

但是这种方法会造成随着业务的增长会增加越来越多的工厂类

3.抽象方法工厂类

当子业务又要拓展出子业务时,只定义一个业务接口就显得有些力不足心,就衍生除了抽象方法工厂类

业务

分别对子业务定义接口

子业务定义接口

当衣服和裤子需要成套生产时,我们可以对工厂类再细化分接口

成套生产 逻辑结构图

但是需要生产不同的套装需要的不同的工厂类,随着业务的增加,工厂类也会越来越多,因此我们借助简单工厂类对工厂定义接口那部分代码优化

利用简单工厂类优化套装生产

但是代码审核人员说不满意,随着业务的增长,switch分支只会越来越多

因此我们引入Reflection反射类来简化代码

什么是ReflectionClass?

手册上的解释

我们可以通过该反射类创建类,获取一个类的信息包括注释?

这么神奇?试一试

newInstance传入的参数将会被传入Factory类的构造函数

两次执行结果对比

利用反射类优化

结果相同

逻辑结构总结

总结:

1.简单工厂类由一个统一工厂类生产产品,对产品进行接口定义

2.工厂方法类除了对不同产品定义接口外,对不同的工厂类也定义同一个接口,不同的工厂生产不同的产品,具体生产哪个产品由子类决定。

3.抽象工厂类对业务的子业务定义接口,并由统一工厂类生产产品

相关文章

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

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

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

  • 设计模式三、工厂模式

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

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 单件设计模式

    一、定义 设计模式 设计模式就是一种更好的编写代码方案。 常见设计模式 工厂设计模式、抽象工厂设计模式、抽象工厂设...

  • iOS设计模式(三)之抽象工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(一)之简单工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • iOS设计模式(二)之工厂模式

    设计模式系列传送门 iOS设计模式(一)之简单工厂模式iOS设计模式(二)之工厂模式iOS设计模式(三)之抽象工厂...

  • 设计模式一、单例模式

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

  • 设计模式-工厂模式

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

网友评论

      本文标题:工厂设计模式

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