设计模式01 创建型模式 - 抽象工厂

本文介绍了抽象工厂模式,它为创建相关或相互依赖对象提供接口,是创建工厂的工厂。阐述了其与Template和Builder Pattern的区别,说明了适用场景、特点和缺点,还给出通用类图,指出每个具体工厂代表一种整体方案。

参考

1. 三种工厂模式的分析以及C++实现|博客园

2. 设计模式之三:抽象工厂模式 | 优快云

3. 浅谈Java设计模式——单实例、简单工厂、抽象工厂、观察者 | 优快云

 

抽象工厂

为创建一组相关或者相互依赖的对象提供一个接口,而无需指定他们具体的类。

通俗讲,就是创建工厂的工厂,每个工厂都实现抽象工厂,从而决定一个产品族;不同工厂生产不同产品族。

抽象工厂只关心接口,也就是工厂和产品之间的关系,工厂和用户之间的关系,而不关心产品如何实现,而Template和Builder Pattern关心产品实现方式,这是主要的区别。

 

适用场景:当有一组具体的、相关的产品组成一个产品族或者整套方案时,通过抽象工厂就能很好的实现这种逻辑关系,而且用户创建不容易出错。

特点:一个具体工厂生产的产品相关,组成一个产品族;

增加一种产品族而不增加具体产品时,新增一个具体工厂类即可;

缺点:增加一种具体的产品时,可能会导致所有的工厂包括抽象工厂接口都需要针对具体产品族而修改;

 

通用类图:

这里Factory1,2,3都能创建AbstractProductA,B,C具体子类,但是分别只能创建具体子类中的一个,这些具体子类组合到一起,就代表一个产品族;也就是每个具体工厂代表了一种整体方案;

 

转载于:https://www.cnblogs.com/fortunely/p/9551642.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值