产品展示源码_23种设计模式-工厂方法模式(附源码)

本文介绍了工厂方法模式的定义、特点、优缺点,以及三种类型的工厂模式:简单工厂模式、工厂方法模式和抽象工厂模式。通过实例展示了如何在代码中实现这些模式,并提供了相关源码的获取方式。
摘要由CSDN通过智能技术生成

模式的定义与特点

工厂方法模式的定义:工厂顾名思义就是创造东西的地方,我们讲创建对象的过程放入在工厂中,而不是让对象自己去创建。这个过程就叫做工厂方法。

工厂方法模式的主要优点有:

  • 用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程;
  • 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;

其缺点是:每增加一个产品就要增加一个具体产品类和一个对应的具体工厂类,这增加了系统的复杂度。

9f74f9df4424c79d393cfa0187dbd93c.png

图1现实中的工厂

模式的结构与实现

工厂模式大致分为三类:简单工厂模式,抽象工厂模式,工厂方法模式,

简单工厂模式:由大工厂,和具体产品组成,该模式相对简单。结构图如下

c025445a8fc2d113ae7cdc7d78fce83a.gif

图2简单工厂模式结构图

工厂方法模式:由抽象工厂、具体工厂、抽象产品和具体产品等4个要素构成。结构图如下

654e20ed79064eac178b745bc30bcd31.gif

图3抽象工厂模式的结构图

抽象工厂模式:抽象工厂模式同工厂方法模式一样,也是由抽象工厂、具体工厂、抽象产品和具体产品等 4 个要素构成,但抽象工厂中方法个数不同,抽象产品的个数也不同。现在我们来分析其基本结构和实现方法。结构图如下

a86c5f6f0177deaf6297a16b4a9a3dbc.gif

图4抽象工厂模式

简单工厂模式的实现

该模式应用于产品和工厂数量不多的情况,相对而言比较简单。

由于类太多,合并到一个文件

cfdcdc41ded1ae3ca1e6c9cb5245617b.png

图5工厂和产品的代码

具体调用

cd8e70ba42231725c0420224f87ad8b1.png

图6简单工厂的调用

工厂方法模式的实现

该模式是比较常见的工厂模式,相对于简单工厂模式而言,该模式类会相对较多,

由于类太多 Audi和Byd两个类我省略了。想要源码的话请转发并私信获取

4ccd95b89a0961cece29d8547021bac8.png

图7汽车工厂

14b082a9206fe1083d8d47e9c3199a41.png

图8奥迪工厂继承汽车工厂

7d9f803fd64a805f27a3cf14710da28c.png

图9比亚迪工厂继承汽车工厂

cd2ce3c3361b4cfa47ce0fad706b2aaa.png

图10客户端调用

抽象工厂模式实现

从图4可以看出抽象工厂模式的结构同工厂方法模式的结构相似,不同的是其产品的种类不止一个,所以创建产品的方法也不止一个

具体实现如下

02c166cf516bf527777fb1830bb04095.png

类也相对比较复杂,不过一般比较少采用这个方式

以上就是工厂方法模式的所有内容,想要源码的朋友转发+关注 私信我即可获取源码

d46b67cb3a08618829bb706ea5117380.png

源码展示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值