Java23种设计模式——4.创建型模式之抽象工厂模式

Java中除去有设计原则之外,还有23中设计模式。

这些模式都是前辈们一点一点积累下来,一直在改进,一直在优化的,而这些设计模式可以解决一些特定的问题。

并且在这些模式中,可以说是将语言的使用体现的淋漓尽致。

那我们今天要学习  创建型模式  中的  抽象工厂模式  !

抽象工厂模式:

大家可以发现啊,这个之前我们说了这个工厂模式,但是现在怎么多了一个抽象工厂模式?是不是,它和工厂模式有啥区别,如何理解抽象这个词的,为啥会有俩工厂模式?

我们带着这些个以为来看这篇博客。

先来说说什么是抽象工厂模式:

抽象工厂呢就是一个超级工厂, 它是用来创建其他工厂,就相当于我们之前的那个博客的面粉厂一样,我们除去面粉厂之外,还得需要一个馅料厂(不能光吃饺子皮吧,饺子得有馅料吧),这时候,我们定义一个超级工厂,也就是抽象工厂,我们用这个超级工厂来管理其他的这些个工厂。

这么一说,上面的这些个问题都知道了答案了。接下来我们来实现一下简单的抽象工厂,来体验一下。

抽象工厂模式的实现:

我们的那个面粉厂暂时先不动,再相同的创建一个馅料厂。

先弄个馅料的接口,然后接口中添加和馅料的方法。相同的,具体和啥馅料,我们让具体的实现类来决定。

然后,我想吃韭菜鸡蛋馅的,我就先弄个韭菜鸡蛋的馅,让它去实现这个馅料接口。

除去这个韭菜鸡蛋,我再弄个黑暗料理,花生酱鱿鱼须馅的。

原本在工厂模式中,接下来我们就要创建工厂了,但是,我们这次是弄得超级工厂,我们不按照以前的方法去做了,而是换一种思路,继续!

第一步:抽象工厂,先得抽象,然后工厂。我们创建一个抽象工厂类。叫食品加工厂,FoodFactory,但是是抽象的。(注意命名规范,如果不知道规范的,请看阿里巴巴Java开发手册)

大家勾选了这个abstract,就直接创建一个抽象类,方便快捷。

第二步:我们在这个食品加工厂类中将刚刚两个工厂搞成抽象方法,这个方法主要目的是获取工厂。也就是我们上一个工厂模式介绍中的工厂中的方法。我来贴一下我们上个博客中的工厂方法。

我们将上面方法抽象出来

有了这个抽象工厂之后,我们这才来创建具体的工厂,并且让每一个具体的工厂,来继承这个食品加工厂!

实现这个之后我们发现有俩方法,获取面粉的获取馅料的方法都有,但是我们是面粉厂,我们只管面粉,馅料我们是弄不了的,所以我们就不管它,就让它返回null。

当然,还有馅料厂。

第三步:我们还得弄个管理这俩工厂的类,用来实例化工厂。

最后一步:我们来测试,先来做一个韭菜鸡蛋馅的饺子。

先弄饺子面团。

再弄饺子馅。

这样是不是,饺子面也有了,馅也有了?

其实上面这段代码我们看的不是很明白,或者不是很理解这个具体的架构样子,我给一个图,画的不专业,但是,绝对能够让大家看明白结构。

大家如果有不明白的地方可以联系我,我给大家解答。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他 他 = new 他()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值