博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单工厂模式
阅读量:6262 次
发布时间:2019-06-22

本文共 1433 字,大约阅读时间需要 4 分钟。

【1】什么是简单工厂模式?核心思想:用一个工厂来根据输入的条件产生不同的类,然后根据不同类的virtual函数得到不同的结果。理解:根据条件生成不同的实例。利用多态的特性,调用同名方法,不同的实例将得到不同的结果。【2】代码示例如下:代码如下:

 

#include 
#include
using namespace std;/* * 运算基类 */class Operation{public: double numberA; double numberB;public: virtual double getResult() { return 0; }};/* * 加法运算子类 */class addOperation : public Operation{ double getResult() { return numberA + numberB; }}; /* * 减法运算子类 */class subOperation : public Operation{ double getResult() { return numberA - numberB; }}; /* * 乘法运算子类 */class mulOperation : public Operation{ double getResult() { return numberA * numberB; }}; /* * 除法运算子类 */class divOperation : public Operation{ double getResult() { return numberA / numberB; }}; /* * 简单构建工厂 */class operFactory{public: static Operation *createOperation(char c) { switch (c) { case '+': return new addOperation; break; case '-': return new subOperation; break; case '*': return new mulOperation; break; case '/': return new divOperation; break; default: break; } }}; /* * 客户端应用示例 */void main(){ Operation *oper = operFactory::createOperation('+'); oper->numberA = 9; oper->numberB = 99; cout << oper->getResult() << endl;}

 

转载地址:http://idzpa.baihongyu.com/

你可能感兴趣的文章
UIViewController各个方法的加载顺序
查看>>
Jenkins新建节点,启动方式没有“通过Java Web启动代理”选项怎么办?
查看>>
iOS html格式解析
查看>>
软件工程实践2017第一次作业
查看>>
Homestead 中使用 laravel-mix 问题汇总
查看>>
Selenium2Library系列 keywords 之 _SelectElementKeywords 之 unselect_from_list(self, locator, *items)...
查看>>
GNU/Linux 初学之旅(转)
查看>>
【java】Split函数踩坑记
查看>>
【leetcode】Decode Ways
查看>>
SLES documentation
查看>>
Python的metaclass、`__new()__`、单例模式
查看>>
在CentOS7上安装Zabbix3.0
查看>>
066、Weave如何与外网通信?(2019-04-09 周二)
查看>>
ASP常用函数
查看>>
tomcat绑定域名
查看>>
六数码问题(回溯)
查看>>
MongoDB主库和从库的数据大小不一致原因判断
查看>>
JavaScript之Date
查看>>
oracle sql命令行中上下左右使用
查看>>
Centos6快速yum lamp
查看>>