关闭

抽象工厂模式 实物举例

268人阅读 评论(0) 收藏 举报

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

 

示例:假设一个工厂需要生产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应该都是抽象类,而不能是接口,从这点可以理解接口和抽象类的作用和区别——接口是为了解决方法的统一,抽象类是为了“子类替代父类对象”,这样代码修改量简单却能改变不同的结果。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:286089次
    • 积分:8489
    • 等级:
    • 排名:第2296名
    • 原创:1096篇
    • 转载:14篇
    • 译文:0篇
    • 评论:4条
    最新评论