<Java设计模式>—抽象工厂模式

<Java设计模式>—抽象工厂模式

抽象工厂的定义其实和工厂方法模式定义差不多,具体的可以去看看工厂方法模式,下面主要说说区别:

 

 

UML类图上面观察,抽象工厂和工厂方法主要的区别就是生产的产品了,抽象工厂生产了一系列的产品,而工厂方法只是简单的生产了一个产品,打个比方,就应该比较好理解了。抽象工厂,我们就把它比方成电脑生产的厂家,电脑其实一个很多零件组成的,显示器、键盘、电池、主板(组件还有不同的属性),那么这一个个组件就是一个个产品,那么电脑厂家就是这个工厂,用来生产这些小组件,然后进行拼装,才变成了一台电脑;那么工厂方法模式就好比一个酒厂,它的产品就是酒,没啥可拼装的(酒瓶属于包装了)。

那么抽象工厂的应用场景就应该是可以很好的切换产品的属性,就像上面举得电脑厂家样,如果生产一个高配电脑和一个低配电脑(只考虑cpu高低),那么其他的属性产品是不用制作模具生产,只是简单的换个cpu,那么就可以生产出我们想要的两种产品。

不过呢,抽象工厂模式也是有它的缺点的,假如我们在原来电脑的基础上,我想添加一个指纹识别的模块,那么我就需要改动很大,1、改动抽象工厂类,和该类的子类;2、添加一个指纹识别的抽象产品和该产品的具体实现;3、将具体工厂和具体的产品进行关联。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值