抽象工厂(Abstact factory)模式

意图:

         提供一个创建一系列相关或相互依赖对象(属于同一个产品族,如不同风格的一组控件)的接口。AbstractFactory模式将产品对象的创建延迟到它的ConcreteFactory子类。

本质:

         产品有多种风格,但其生产过程相似,通过继承和多态机制可以实现不同风格产品的创建,只需变更相应的抽象工厂即可。

缺点:

         AbstractFactory接口确定了可以被创建的产品集合。当增加一个新的产品时,需要更改所有工厂的接口(包括抽象父类),增加该产品的创建过程。解决这个问题可以通过把工厂定义为可扩展的方式(不太灵活):给创建对象增加一个参数(如参数化工厂方法),这样增加一个产品时只需在所需的工厂中增加接口即可。

解决方法:

         通常的方法是为每一个产品定义一个工厂方法


UML图;

 

和工厂方法模式的区别和联系:

         抽象工厂对具体产品进行了归类,这样一个抽象工厂就具备了创建一系列同一风格产品的功能,是一对多的关系。而工厂方法模式一般是一对一的模式(参数化工厂方法除外)。

        抽象工厂模式具体到某一产品的创建来说就是以工厂方法模式实现的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值