千家信息网

C++中的工厂模式怎么实现

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"C++中的工厂模式怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中的工厂模式怎么实现"吧!工厂模式中使用了多态的原理
千家信息网最后更新 2026年11月01日C++中的工厂模式怎么实现

这篇文章主要讲解了"C++中的工厂模式怎么实现",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中的工厂模式怎么实现"吧!

工厂模式中使用了多态的原理,来将具体实现和接口进行有效的解耦合,符合开闭原则和依赖倒置原则
需要新加功能的时候不需要对原有代码进行修改。
抽象类human和抽象类factory就是调用接口,而实际的生产过程通过factory的子类(如boyfactory)来new
一个具体的human(如:boy)子类然后返回一个human父类的指针完成,如下图:



具体的代码如下:

点击(此处)折叠或打开

  1. #include


  2. using namespace std;

  3. //工厂模式新增功能并不会修改原有代码符合开闭原则

  4. //使用多态实现

  5. //纯虚拟接口

  6. class human

  7. {

  8. public:

  9. virtual void getman(void) = 0;

  10. virtual ~human()

  11. {

  12. //cout<<"4:"<

  13. }

  14. };


  15. class factory

  16. {

  17. public:

  18. virtual human* greman(void) = 0;

  19. virtual ~factory()

  20. {

  21. // cout<<"3:"<

  22. }

  23. };


  24. /////boy

  25. class boy:public human

  26. {

  27. public:

  28. virtual void getman(void)

  29. {

  30. cout<<"I'M BOY!"<

  31. }

  32. virtual ~boy()

  33. {

  34. // cout<<"2:"<

  35. }

  36. };


  37. class boyfactory:public factory

  38. {

  39. private:

  40. boy* p;

  41. public:

  42. virtual human* greman(void) //负责生产boy言外之意就是调用一个new来new出内存空间

  43. {

  44. p = new boy;

  45. return p;

  46. }

  47. virtual ~boyfactory()

  48. {

  49. // cout<<"1:"<

  50. delete p;

  51. }

  52. };


  53. //后来新建的woman工厂和woman定义

  54. //////////////woman


  55. class woman:public human

  56. {

  57. public:

  58. virtual void getman(void)

  59. {

  60. cout<<"I'M woman!"<

  61. }

  62. virtual ~woman()

  63. {

  64. // cout<<"5:"<

  65. }

  66. };


  67. class womanfactory:public factory

  68. {

  69. private:

  70. woman* p;

  71. public:

  72. virtual human* greman(void) //负责生产woman言外之意就是调用一个new来new出内存空间

  73. {

  74. p = new woman;

  75. return p;

  76. }

  77. virtual ~womanfactory()

  78. {

  79. //cout<<"6:"<

  80. delete p;

  81. }

  82. };


  83. ///////////////////////


  84. int main(void)

  85. {

  86. //生产boy

  87. factory* fa1= new boyfactory;

  88. human* hm1 = NULL;

  89. hm1 = fa1->greman();

  90. hm1->getman();

  91. delete fa1;

  92. //生产woman

  93. factory* fa2= new womanfactory;

  94. human* hm2 = NULL;

  95. hm2 = fa2->greman();

  96. hm2->getman();

  97. delete fa2;


  98. cout<<"hello!"<

  99. }

感谢各位的阅读,以上就是"C++中的工厂模式怎么实现"的内容了,经过本文的学习后,相信大家对C++中的工厂模式怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

工厂 模式 生产 C++ 就是 代码 原则 接口 学习 多态 言外之意 内存 内容 功能 子类 空间 合开 有效 原理 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 山东特亿宝互联网科技有限公司 厦门中拓互联网络科技有限公司 智能科技公司是互联网公司吗 青岛互联网科技公司 碳银互联网科技 北京禾田雨橡互联网科技 互联网 视角下的科技创新 成都互联网科技公司100强 广州恒生互联网科技有限 宁夏科技产业互联网案例 互联网科技公司实习生 国大互联网教育科技有限公司工作 乌苏新华互联网科技做什么的 佛山市拉法互联网科技有限公司 互联网科技接地气 北京品多多互联网科技有限公司 承德科技产业互联网平台 网互联网络科技 互联网企业和网络科技有限公司 北京路客互联网科技有限公司 互联网科技金融公司 猪兼强互联网科技 云电互联网科技 互联网科技股有哪些 汉立互联网科技有限公司联系电话 河南猎农互联网科技有限公司 厦门千工互联网科技有限公司 中国科技创新与世界互联网大会 科技信息时代互联网发展
0