#include <iostream>
#include <string> using namespace std; class COperator
{
public:
virtual double GetResult()=; public:
COperator()
{
}
COperator(double number_a, double number_b): m_numberA(number_a), m_numberB(number_b)
{
}
double m_numberA;
double m_numberB;
}; class CSub: public COperator
{
public:
CSub()
{
}
CSub(double number_a, double number_b): COperator(number_a, number_b)
{
}
virtual double GetResult();
}; double CSub::GetResult()
{
return this->m_numberA - this->m_numberB;
} class CAdd: public COperator
{
public:
CAdd()
{
}
CAdd(double number_a, double number_b): COperator(number_a, number_b)
{
}
virtual double GetResult();
}; double CAdd::GetResult()
{
return m_numberA + m_numberB;
} class CFactory
{
public:
static COperator* CreateOperation(char sOpeType);
}; COperator* CFactory::CreateOperation(char sOpeType)
{
switch(sOpeType)
{
case '-':
return new CSub();
break;
case '+':
return new CAdd();
break;
default:
break;
}
} int main(void)
{
COperator* oper = CFactory::CreateOperation('-');
oper->m_numberA = ;
oper->m_numberB = ;
cout<< "oper->m_numberA: "<< oper->m_numberA<< endl;
cout<< "oper->m_numberB: "<< oper->m_numberB<< endl;
cout<< oper->GetResult()<< endl; return ;
}
////////////////////////
[root]$ ./2_simple_factory
oper->m_numberA:
oper->m_numberB:
-

设计模式——简单工厂模式(C++实现)的更多相关文章

  1. 3. 星际争霸之php设计模式--简单工厂模式

    题记==============================================================================本php设计模式专辑来源于博客(jymo ...

  2. Golang设计模式—简单工厂模式(Simple Factory Pattern)

    Golang设计模式--简单工厂模式 背景 假设我们在做一款小型翻译软件,软件可以将德语.英语.日语都翻译成目标中文,并显示在前端. 思路 我们会有三个具体的语言翻译结构体,或许以后还有更多,但现在分 ...

  3. C++设计模式——简单工厂模式

    简单工厂模式(Simple Factory Pattern) 介绍:简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些.因为它至少不是Gof23种设计模式之一.但它在实际的编程中经常被用 ...

  4. 深入浅出设计模式——简单工厂模式(Simple Factory)

    介绍简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些.因为它至少不是Gof23种设计模式之一.但它在实际的编程中经常被用到,而且思想也非常简单,可以说是工厂方法模式的一个引导,所以我想 ...

  5. C#设计模式--简单工厂模式

    简单工厂模式是属于创建型模式,但不属于23种GOF设计模式之一. 举一个例子:一个公司有不同的部门,客户根据需要打电话到不同的部门.客户相当于上端,不同部门相当于下端.不使用简单工厂模式来实现的例子如 ...

  6. 设计模式 | 简单工厂模式(static factory method)

    按理说应该把书全都看完一遍,再开始写博客比较科学,会有比较全面的认识. 但是既然都决定要按规律更新博客了,只能看完一个设计模式写一篇了. 也算是逼自己思考了,不是看完就过,至少得把代码自己都敲一遍. ...

  7. Yii2设计模式——简单工厂模式

    除了使用 new 操作符之外,还有更多的制造对象的方法.你将了解到实例化这个活动不应该总是公开进行,也会认识到初始化经常造成"耦合"问题. 应用举例 yii\db\mysql\Sc ...

  8. 设计模式 — 简单工厂模式(staticFactory)

    这篇博文介绍简单工厂模式,设计模式并不是固定的二十三种,不同的书介绍的可能有出入,这篇介绍的简单工厂模式在有些书上就忽略不介绍了.设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验 ...

  9. Yii2 设计模式——简单工厂模式

    除了使用 new 操作符之外,还有更多的制造对象的方法.你将了解到实例化这个活动不应该总是公开进行,也会认识到初始化经常造成“耦合”问题. 应用举例 yii\db\mysql\Schema 中: // ...

  10. 在商城系统中使用设计模式----简单工厂模式之在springboot中使用简单工厂模式

    1.前言: 不了解简单工厂模式请先移步:在商城中使用简单工厂.在这里主要是对springboot中使用简单工厂模式进行解析. 2.问题: 什么是简单工厂:它的实现方式是由一个工厂类根据传入的参数,动态 ...

随机推荐

  1. java获取windows下面的文件对象

    import javax.swing.*;import javax.swing.filechooser.FileSystemView;import java.io.File; FileSystemVi ...

  2. 如何使用 window api 转换字符集?

    //宽字符转多字节 std::string W2A(const std::wstring& utf8) { int buffSize = WideCharToMultiByte(CP_ACP, ...

  3. python实现汉诺塔移动

    汉诺塔问题 汉诺塔是根据一个传说形成的一个问题.汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大 ...

  4. mac上搭建appium+IOS自动化测试环境(一)

    阅读须知 由于OS X系统最近才开始接触,所以有些东西也不是很清楚,这里只提供方法不提供原理,能解释清楚的我也会尽量解释.可能也有一些地方说的不严谨或有错的,还望大家指点一二. 实验环境 操作系统: ...

  5. java基础之继承(二)

    上篇我们介绍了java中的构造方法,了解了关键字this和super在继承中所起到的作用,this可以显式调用重载的构造方法,super可以显式的调用父类中的任意可见方法.了解方法重载和重写的区别,知 ...

  6. Wordpress上传资源报HTTP错误

    简述 在公司内部搭建内部视频学习网站,经过对比选择了wordpress进行站点搭建.但是在上传视频遭遇到了各种问题,特将此处理过程进行记录. 原因排查 1.上传一个十几兆mp4的文件上传进度到达百分之 ...

  7. R语言︱XGBoost极端梯度上升以及forecastxgb(预测)+xgboost(回归)双案例解读

    XGBoost不仅仅可以用来做分类还可以做时间序列方面的预测,而且已经有人做的很好,可以见最后的案例. 应用一:XGBoost用来做预测 ------------------------------- ...

  8. hi3531的时钟系统

    时钟管理模块对芯片时钟输入.时钟生成和控制进行统一的管理,包括: 时钟管理模块有以下两部分输入:

  9. 三级级联查询省份名称和编码(保证名称不重复)的SQL语句

    三级级联查询省份名称和编码(保证名称不重复)的SQL语句 1.省份.地市和县级数据库表 2.SQL语句 SELECT DISTINCT t.`province_name`,t.`province_co ...

  10. Caused by: java.sql.SQLException: Operand should contain 1 column(s)

    1.错误描述 [ERROR:]2015-05-05 15:48:55,847 [异常拦截] org.hibernate.exception.DataException: error executing ...