工厂模式C++实现
来源:互联网 发布:斯坦福大学知乎 编辑:程序博客网 时间:2024/05/16 05:15
工厂模式,主要是定义一个抽象类,在抽象类中定义纯虚函数,然后在派生类中,将实现虚函数。
比如说,一个系统,需要把系统的各个模块启动或者分别销毁了,每个模块都有一个create函数和destroy函数。
定义抽象基类,所有模块继承这个抽象基类,然后使用抽象基类指针指向这些模块的派生类对象,一一调用create,或者一一调用destroy。
实现了动态绑定,好处就是方便扩展。
FactoryRealA,FactoryRealB,FactoryRealC分别继承了FactoryAbstract,
以下程序实现了工厂模式应用的一种例子,统一调用create函数和destroy函数。动态联编。
#include <iostream>class FactoryAbstract{public: virtual void create() = 0; virtual void destroy() = 0;};class FactoryRealA:public FactoryAbstract{public: virtual void create(){std::cout<<"create A"<<std::endl;} virtual void destroy(){std::cout<<"destroy A"<<std::endl;}};class FactoryRealB:public FactoryAbstract{public: virtual void create(){std::cout<<"create B"<<std::endl;} virtual void destroy(){std::cout<<"destroy B"<<std::endl;}};class FactoryRealC:public FactoryAbstract{public: virtual void create(){std::cout<<"create C"<<std::endl;} virtual void destroy(){std::cout<<"destroy C"<<std::endl;}};int main(){FactoryRealA *A = new FactoryRealA();FactoryRealB *B = new FactoryRealB();FactoryRealC *C = new FactoryRealC();FactoryAbstract *Abstract[3] = {A,B,C};int num = sizeof(Abstract)/sizeof(Abstract[0]);int i = 0;for(i = 0; i < num; i++){Abstract[i]->create();}for(i = 0; i < num; i++){Abstract[i]->destroy();}}
阅读全文
0 0
- C语言实现工厂模式
- 简单工厂模式C语言实现
- 工厂方法模式C语言实现
- C语言实现抽象工厂模式实例
- 工厂模式(C/C++实现理解)
- 简单工厂模式(C语言实现)
- 工厂函数模式 (C语言实现)
- 抽象工厂模式 (C语言实现)
- 设计模式的实现(C++)------工厂方法模式(FactoryMethod)
- 设计模式的实现(C++)------抽象工厂模式(AbstractFactory)
- 工厂模式-C-工厂方法
- C语言实现《设计模式之禅》之工厂模式——标准工厂
- C语言实现《设计模式之禅》之工厂模式——抽象工厂
- 工厂模式(c++)
- C#-简单工厂模式
- C#-工厂方法模式
- 工厂模式 (C#)
- 【C#】简单工厂模式
- 一年之期
- Navigator的教程
- sdl实现计时器
- 洛谷 P3818 小A和uim之大逃离 II
- Luogu P1802 5倍经验日_KEY
- 工厂模式C++实现
- docker-machine提示This computer doesn't have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory
- (二)Redux:实现一个Store
- OpenCV+Qt+Win10开发环境配置
- 位操作 leetcode 260. Single Number III
- POJ2887【块状链表】
- 产品中的性能优化总结
- PyCharm使用技巧:Find Usages(查找引用)
- 深刻理解计算机中的补码