gpt4 book ai didi

C++设计模式之Static Factory模式详解

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C++设计模式之Static Factory模式详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

简单工厂模式并不是GOF提出的23种设计模式中的一种。工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品.

适用场合 。

1.在程序中,需要创建的对象很多,导致对象的new操作多且杂时,需要使用简单工厂模式; 2.由于对象的创建过程是我们不需要去关心的,而我们注重的是对象的实际操作,所以,我们需要分离对象的创建和操作两部分,如此,方便后期的程序扩展和维护.

1.定义抽象类,也就是接口 。

?
1
2
3
4
5
class Product
{
public :
  virtual void show()=0;
};

2.定义需要具体实现类,继承抽象类,假设有三个产品 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class ProductA: public Product
{
public :
  virtual void show()
  {
  printf ( "ProductA\n" );
  }
};
 
class ProductB: public Product
{
public :
  virtual void show()
  {
  printf ( "ProductB\n" );
  }
};
 
class ProductC: public Product
{
public :
  virtual void show()
  {
  printf ( "ProductC\n" );
  }
};

3.定义工厂类,负责生产产品,这里传入具体的参数来决定生产那个产品 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Factory
{
public :
  Product* CreateProduct( int num)
  {
  switch (num)  //通过传参实例化对象
  {
  case 1:
   return new ProductA();
   break ;
  case 2:
   return new ProductB();
   break ;
  case 3:
   return new ProductC();
   break ;
  default :
   return NULL;
   break ;
  }
  }
};

4.实际调用 。

?
1
2
3
4
5
6
7
8
9
10
int main()
{
  Factory* ProductFactory= new Factory();    //首先定有一个工厂对象
  Product* A=ProductFactory->CreateProduct(1); //利用多态与工厂对象来传参决定生产那个产品
  A->show();
  Product* B=ProductFactory->CreateProduct(2);
  B->show();
  Product* C=ProductFactory->CreateProduct(3);
  C->show();
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我。  。

原文链接:https://blog.csdn.net/aidam_bo/article/details/81120793 。

最后此篇关于C++设计模式之Static Factory模式详解的文章就讲到这里了,如果你想了解更多关于C++设计模式之Static Factory模式详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com