抽象工厂模式 实物举例

原创 2013年12月04日 09:42:34

一个工厂同时要生产出多个产品——工厂是多任务多产品的,这样就必须使用“抽象工厂模式”

 

示例:假设一个工厂需要生产Gun 、Food、Car这三个产品,工厂A和工厂B生产的产品分别是gun1、food1、car1和gun2、food2、car2,

 

这个时候就需要抽象出一个工厂Factory来生产Gun 、Food、Car这三个产品,利用“子类替换父类对象”的原理,工厂A和工厂B分别去继承这个Factory,如果要换产品就只需要修改new 的子类对象——具体哪个工厂,这样就不学要修改大量的代码,就能生产出不同的产品。

 

缺点:如果再添加一个产品,这样就需要改很多东西——抽象类Factory还有对应的产品,这样只要与factory相关的都需要改,所以利用这种模式的时候需要认清这种方式的缺点。

 

注意:Factory、Gun 、Food、Car应该都是抽象类,而不能是接口,从这点可以理解接口和抽象类的作用和区别——接口是为了解决方法的统一,抽象类是为了“子类替代父类对象”,这样代码修改量简单却能改变不同的结果。

抽象工厂模式

  • 2016年08月12日 06:56
  • 18KB
  • 下载

unity使用抽象工厂模式

转自这里 http://www.unitymanual.com/thread-38023-1-1.html 话说野猪上次讲到了工厂家族里面的工厂方法模式的修炼心法,不知各位侠士是否已经了然于胸了...

c++ java 抽象工厂模式代码

  • 2016年12月31日 19:20
  • 417KB
  • 下载

android面向接口编程(抽象工厂模式,扩展性超强,Demo优化)

本分开始之前。咱先提出来几个疑问: 接口有什么用途? 面向接口编程的好处? 它和抽象类有什么区别? 能不能用抽象类代替接口呢? 它和面向对象编程是什么关系? 本分主要分为: 1.面向接口编程和面向对象...

C#初级抽象工厂模式用法示例

  • 2014年05月28日 16:47
  • 5KB
  • 下载

Abstract Factory(抽象工厂模式)

Abstract Factory模式的意图是:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 具体到我们迷宫的例子就是: 如果传递一个对象给CreateMaze作参数来创建房间、...

抽象工厂模式 - PHP版

  • 2014年05月28日 15:51
  • 7KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:抽象工厂模式 实物举例
举报原因:
原因补充:

(最多只允许输入30个字)