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

所属分类: 软件编程 / C 语言 阅读数: 69
收藏 0 赞 0 分享

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

适用场合

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

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

class Product
{
public:
 virtual void show()=0;
};

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

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.定义工厂类,负责生产产品,这里传入具体的参数来决定生产那个产品

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.实际调用

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();
}

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

更多精彩内容其他人还在看

利用C语言来求最大连续子序列乘积的方法

这篇文章主要介绍了利用C语言来求最大连续子序列乘积的方法,基本的思路以外文中还附有相关ACM题目,需要的朋友可以参考下
收藏 0 赞 0 分享

用C语言判断一个二叉树是否为另一个的子结构

这篇文章主要介绍了用C语言判断一个二叉树是否为另一个的子结构,是数据结构学习当中的基础知识,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现的阶乘,排列和组合实例

这篇文章主要介绍了C语言实现的阶乘,排列和组合的方法,涉及C语言数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言查找数组里数字重复次数的方法

这篇文章主要介绍了C语言查找数组里数字重复次数的方法,涉及C语言针对数组的遍历与判断技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言简单实现计算字符个数的方法

这篇文章主要介绍了C语言简单实现计算字符个数的方法,涉及C语言针对字符串的简单遍历与判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

c实现linux下的数据库备份

本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

C++获得文件状态信息的方法

这篇文章主要介绍了C++获得文件状态信息的方法,包括文件状态信息、文件所在磁盘盘符、文件创建时间、访问时间及修改日期等,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言按关键字搜索文件夹中文件的方法

这篇文章主要介绍了C语言按关键字搜索文件夹中文件的方法,涉及C语言文件操作及字符串查找的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C语言之字符串模糊查询方法的实现

本篇文章主要为大家介绍字符串模糊查询的C语言程序编写方法,有需要的朋友可以参考下
收藏 0 赞 0 分享

C语言实现BMP转换JPG的方法

这篇文章主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多