设计模式-抽象工厂模式

工厂模式会随着产品的增多而增多,这样会增加系统的复杂度,对此,是不是可以将某些位于不同产品等级结构中,功能相关联的产品归为同一类进而有同一个工厂进行生产,对于这些同类的产品称之为产品族。

抽象工厂:与系统业务逻辑无关,只负责定义接口

具体工厂:实现抽象工厂的接口,与系统业务逻辑息息相关,负责创建对象

抽象产品:定义产品族的共性

具体产品:实现抽象产品的共性,根据自身需求添加产品特性

优点:

(1)分离了具体的类。客户通过抽象接口操纵实例,产品的类名也在具体工厂的实现中被分离,它们不出现在客户代码中。[3] 

(2)易于交换产品系列。一个具体工厂类只在初始化时出现一次,这使得改变一个应用的具体工厂变得很容易,只需改变具体的工厂即可使用不同的产品配置。 [3] 

(3)有利于产品的一致性。当一个系列的产品对象被设计成一起工作时,一个应用一次只能使用同一个系列中的对象,这一点很重要,而抽象工厂很容易实现这一点。 [3] 

缺点:难以支持新种类的产品。因为抽象工厂接口确定了可以被创建的产品集合,所以难以扩展抽象工厂以生产新种类的产品。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值