美文网首页
简单工厂,工厂方法,抽象工厂 概念 对比

简单工厂,工厂方法,抽象工厂 概念 对比

作者: 隔壁班小明 | 来源:发表于2018-04-23 16:16 被阅读21次

作为一个瞎写的楼主今天说一说我对标题这哥仨的理解。
单独说一个的很多了,但是总是越看越混,最后懵逼,这里我希望说一下我对他们的一些理解,不具体说代码。
简单工厂:简单的说写了一个创建方法创建了一类东西,具体创建的是哪个,这个方法上会有一个参数,根据这个参数再判断具体生成那个。

那我们最熟悉的页面说吧,你有一个tableView,但是他们的头试图不一样,有三种头试图对应三种情况。这里我们就可以使用简单工厂了。
简单工厂:
第一步:首先抽离一下三种头试图共有的东西,比如都是通过一个方法来设置数据的。这样就生成了一个协议,当然你写成一个类也可以。
第二步:实现(继承)上面的协议(类),具体写一下三个头试图的具体类。
第三步:写一个方法,方法返回值是基础的协议(父类),来一参数用来在方法中判断创建三种头试图的哪一种就可以了。ps:一般这个参数写成一个枚举类型。

还是用上面头试图的例子。这次换成工厂方法来实现
工厂方法:
第一步:同上。
第二步:同上。
ps:上面两步总结一下是对工厂产品的实现,下面是对工厂的操作。刚刚简单工厂的那个方法里有一个判断,这里就是把这个判断去掉,
第三步:创建一个工厂的基本协议(类),来一个方法返回值是基础的协议(父类),但是这里没有那个参数了。
第四步:实现(继承)工厂的协议(类),具体把每一种头试图对应一个工厂实例。每一种头试图的创建由对应的工厂来实现。

对比一下啊。工厂方法相当于把简单工厂的创建方法拆分成到三个子类去写了。当然具体的好处不是表面写的这样简单。

要说抽象工厂我得把例子改一下,还是那个tableView,现在对应三种情况时,他们的头试图和尾试图要一起变化。就是从头试图的改变,变成了一组头尾试图的改变。

步骤这里我就不写了,简单的说就是把一种工厂产品变成了两种工厂产品。流程上和工厂方法是一样一样的。

文章最后还是那句话,我一种想用自己的理解来简便的说清楚一些事情,所以有些地方可能说的就不对,希望大神指出

相关文章

  • 简单工厂,工厂方法,抽象工厂 概念 对比

    作为一个瞎写的楼主今天说一说我对标题这哥仨的理解。单独说一个的很多了,但是总是越看越混,最后懵逼,这里我希望说一下...

  • 工厂模式理解

    工厂模式分为简单工厂、工厂模式、抽象工厂三种层级概念。简单工厂不属于23种设计模式,抽象工厂才是。 简单工厂 简单...

  • 工厂模式

    简单工厂 —— 工厂方法 —— 抽象工厂 简单工厂: 静态(工厂方法) : 创建一个对象。工厂方法: 动态: 基于...

  • 设计模式-工厂模式

    工厂模式概念 实例化对象,用工厂方法代替new操作。工厂模式包括工厂方法模式和抽象工厂模式。抽象工厂模式是工厂模式...

  • 2021-11-16 - 学习记录

    设计模式学习:创建型:工厂(工厂方法,抽象工厂),建造者,单例,原型 设计模式:工厂模式 简单工厂 工厂方法 抽象工厂

  • 第一章2.0工厂- 基础类准备

    2.1工厂-简单工厂模式2.2工厂-工厂方法模式2.3工厂-抽象工厂模式

  • 设计模式(3) 抽象工厂模式

    抽象工厂模式 优化抽象工厂 异步工厂 在学习抽象工厂模式前,先来回顾一下前面的简单工厂和工厂方法模式。简单工厂的职...

  • 设计模式-3种工厂模式

    工厂模式包括:简单工厂模式,工厂方法模式,抽象工厂模式 简单工厂模式 工厂方法根据参数直接创建实例:工厂->产品 ...

  • 工厂方法(Factory Method)

    工厂方法 一般情况下,工厂模式分为:简单工厂、工厂方法和抽象工厂。 简单工厂模式(Simple Factory) ...

  • 2016.06笔记

    iOS设计模式之工厂模式(简单工厂,工厂方法,抽象工厂) 简单工厂:简单工厂模式的工厂类一般是使用静态方法,通过接...

网友评论

      本文标题:简单工厂,工厂方法,抽象工厂 概念 对比

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