设计模式之抽象工厂模式(java实现),你理解了嘛?

在古代的时候,人们身上穿的衣服其实是人们自己使用织布机织的,随着社会的发展,一直到了现代社会,我们身上穿的衣服基本上都是在工厂里面做好了,直接拿到市面上去卖就好了,对于我们身上的衣服而言,由一开始的手工制作再到今天的工厂生产,这就是工厂模式。

一、认识抽象工厂模式

工厂模式主要分为三个:

(1)简单工厂模式:我们的衣服在工厂里面去建造,这就是简单工厂模式

(2)工厂方法模式:随着社会的发展,用户现在想要一身黑色的衣服、也想要一身红色的衣服。于是乎,我们开始定义一个总厂,下面有很多具体的工厂来生产不同颜色的衣服。

(3)抽象工厂模式:随着客户的要求越来越高,不同颜色衣服还要带各种不同的鞋子去搭配。于是这个工厂又开始生产衣服又要去生产鞋子。

今天我们将继续依照上一篇文章《工厂模式》来探讨一下抽象工厂模式,其实从上面的例子也可以看出,抽象工厂模式其实是工厂模式的升级。下面就来好好看一下抽象工厂模式的实现;

二、抽象工厂模式实现

对于抽象工厂模式,我们还是根据一张图来详细的分析一下

从上图我们可以看到,抽象工厂模式一共至少有5个角色:

(1)用户:提需求

(2)工厂接口:定义多个方法,比如可以生产鞋子,可以生产衣服的方法

(3)具体工厂:对工厂接口的实现,我们在里面生产指定的产品,比如红色衣服工厂,不仅可以生产红色衣服,还可以生产红鞋子、黑色鞋子

(4)抽象产品接口:比如这里的衣服还有鞋子

(5)具体产品类:具体的产品类。

如果上面的图你觉得还不足以刻画,那么直接来看代码:

第一步:抽象产品类定义

第二步:具体产品类定义

首先是具体的衣服产品:红衣服和黑衣服

然后是具体的鞋子产品:红鞋子和黑鞋子

第三步:工厂接口定义

第四步:具体工厂定义

首先是红色衣服工厂:可以生产红衣服还有各种颜色的鞋子

其次是黑色衣服工厂:可以生产黑衣服还有各种颜色的鞋子

第五步:用户类

关于抽象工厂模式与工厂方法模式的区别,这里就不说了,感觉多看几遍例子就能理解。

三、总结

根据前面写的两篇文章,我们可能会发现无论是简单工厂模式,工厂方法模式,还是抽象工厂模式,他们都属于工厂模式,目的都是为了代码的解耦。在使用时,只需要关心降低耦合度的目的是否达到了。

谢谢大家关注,如有问题还请批评指正。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();