设计模式-工厂模式

简述

工厂模式,我们自然而然就能想到工厂。那工厂是干什么的,工厂是制造用户所需要东西的。为什么要用工厂制造呢?用工厂制造就是因为可以快速批量的制造东西。而且工厂还可以根据不同要求来制作不同的产品。还有就是统一化,如果制作工艺变了,那么所有人得到的东西都是新的制作工艺生成的产品。那么代码中的工厂就是帮助用户快速批量制造对象的。

为什么要制造一个对象呢?直接new不就可以了?
是因为某些对象如果手动去创建的话因为对象依赖了许多其他类,创建一次这样的对象非常复杂,并且在项目中我们又经常需要这样的类,所以就可以通过工厂来创建。

我们举个简单的例子:
你是一个用户,你现在想吃披萨了,但是没有制作披萨的工厂。现在怎么办,只能自己来制作了。对于代码来说就是我们先学会制作披萨的方法,然后执行制作披萨的方法,最终得到这样一个披萨对象。

在这里插入图片描述
上面是我们的类图,我们可以发现,要制作一款披萨,我们必须要知道披萨的制作过程(MakePizza依赖Pizza),然后我们根据这个制作过程做我们想要的披萨(MakePizza依赖CheessPizza和GreekPizza),对于我们个人来说需要掌握的东西太多,流程繁琐。

简单工厂模式

这里我们就引入工厂,引入工厂后我们就不需要再知道这么多过程了。想要披萨直接找工厂订购就可以,具体如果制作披萨就变成了工厂的工作了。
在这里插入图片描述
这是我们简单工厂的类图,我们发现我们只需要依赖工厂就可以了(OrderPizza只需要依赖SimpleFactory),其他复杂的依赖都放到了工厂(SimpleFactory依赖Pizza,组合CheessPizza和GreekPizza)。同样,这样的工厂只是一个简单小工厂,它是不能去定制其他口味的披萨的,或者来说就是定制别的口味的披萨比较困难。

方法工厂模式

这里我们引入方法工厂模式,如果我们想要换一个口味的披萨,那么我们就从不同的订单订购披萨(不同的抽象类OrderPizza的实例)
在这里插入图片描述
这就是方法工厂模式,我们根绝不同的订单来得到不同的披萨,如果又新的口味,那就增加新的订单就好了。

抽象工厂模式

还有一种方法来实现随时换不同口味来订购,那就是抽象工厂方法
在这里插入图片描述
我们再订购披萨的时候,通过选择不同流水线来订购不同的披萨。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值