设计模式只Abstract Factory Pattern

抽象工厂模式可以简单理解为对工厂模式的一个抽象,是对多个factory中一些共性再进行抽象

  1. Product定义了由factory method所创建对象的统一接口。
  2. ConcreteProduct具体的类,实现Product接口。
  3. Creator一般为抽象类,声明若干factorymethod(方法),由它创建类型为Product的对象。正因为它能"生产"对象,所以称为factorymethod。Creator也可能拥有一个方法创建某个缺省的具体对象。
  4. ConcreteCreator重载factory method以创建某个 ConcreteProduct 的具体实例。
  5. 抽象类的每一个子类都是一个工厂,可以构建不同要求的产品,比如宝马工厂和奔驰工厂。

在抽象工厂模式中,每个ConcreteCreator只生产一种具体的产品,好似宝马的生产车间,只生产宝马汽车,而不会生产奔驰汽车,同样的奔驰的生产车间也只能生产奔驰汽车而不会生产宝马汽车,这里宝马和奔驰的生产车间都用相同的构造模式,即他们都是继承实现了Creator,对于product来说,我只是知道需要一辆奔驰,但是并不关心这辆车在哪个车间生产的。2009-12-27


Factory Pattern跟Abstract Factory Pattern的区别可以用宝马和奔驰两个生产工厂来比对。 在Factory Pattern里面,用户只要我要求从奔驰车间还是宝马车间里提供一个产品,也就是说产品的种类已经在用户那里指定了。在Abstract Factory Pattern里面,用户不会去指定我要的产品是从宝马还是奔驰的车间里出来。

应用实例:PDF文件里的字体,如果指定的字体类型存在则显示指定的字体,否则调用系统默认的字体。2012-3-13

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值