首页 > 其他 > 详细

工厂模式之——简单工厂模式

时间:2020-07-15 01:35:28      阅读:64      评论:0      收藏:0      [点我收藏+]

原理:

 在工厂类中,通过多态,实例出子类对象,返回父类。客户端只依赖父类和工厂类,不依赖子类;但需要知道所有子类,以决定实例化哪个子类对象。

举例:水果工厂

  (父类)水果类:

Class Fruit

{

  。。。

}

  子类)苹果类:

Class Apple : Fruit

{

。。。

}

  (子类)草莓类:

Class Strawberry : Fruit

{

。。。

}

  水果工厂类:

Class FruitFactory

{

//可生产水果类型

typedef enum TagEnumFruit

{

Apple ,

Strawberry ,

FruitEnd,

}EnumFruit;

//生产方法

Fruit*         CreateFruitFactory(EnumFruit FruitType)
{
  switch(FruitType)
  {
    case Apple :
      return new Apple();
    case Strawberry :
      return new Strawberry();  
    default :
      return null;
  }
}

}

客户端:

Fruit* CFruit = null;

CFruit = FruitFactory.CreateFruitFactory(Apple );//苹果对象生产完成

 

优点:封装类产品子类,当需要增加或者修改产品只需要对子类进行增加或者修改,同时修改工厂类的switch-case就ok了。

缺点:违背开放-封闭原则,每次增改都需要修改工厂类。并且需要对客户暴露所有产品。

 

工厂模式之——简单工厂模式

原文:https://www.cnblogs.com/haosk/p/13302870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!