抽象工厂模式——学习笔记

1.抽象工厂模式——是对产品角色的抽象,面对的问题是多个产品等级结构的系统设计,这是与工厂方法模式最大的区别(工厂方法模式面对的是一个产品等级结构),如果使用多个工厂方法模式来实现,会导致相似的工厂方法的数目越来越多。

2.要创建一个具体产品对象,需先指明产品等级结构(一个产品系列button,textview,imageview等)和产品族(通常为系统环境因素),有几个产品族,就有几个具体工厂,每一个具体工厂负责创建同一个产品族,不同产品等级结构的产品。有多少个产品等级结构,工厂类里就有多少个工厂方法。

3.适应场合:

(1)使用产品的客户端不应当依赖于具体产品是如何创建的这些细节,对所有的工厂方法都是这样的。

(2)有多个系列(产品族)的产品(产品等级结构)被使用。

图中实例为Unix产品族和Windows产品族,Button、Text两个产品等级结构,UnixFactory负责创建Unix系统下的控件,WindowsFactory负责创建Windows下的控件。

“开-闭”原则分析:(对扩展开放,对修改关闭)

对抽象工厂系统的扩展可以:

(1)添加新的产品族; 即添加新的具体工厂 类,不需要修改原有代码;

(2)添加新的产品等级结构;即要添加新的工厂方法,要所有原有的具体工厂类都添加一个工厂方法,违背了“开-闭”原则。

相关模式:

(1)如果只需要一个具体工厂的实例可以使用单例模式。

(2)抽象工厂与具体工厂可以合并,返回具体的工厂。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值