设计模式只Abstract Factory Pattern

来源:互联网 发布:铭赛点胶机编程说明书 编辑:程序博客网 时间:2024/05/02 11:46

抽象工厂模式可以简单理解为对工厂模式的一个抽象,是对多个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

原创粉丝点击