设计模式之简单工厂(sample Factory)模式
来源:互联网 发布:网络盗刷犯罪侦破 编辑:程序博客网 时间:2024/06/07 16:07
#include "stdafx.h"
#include <string.h>
using namespace std;
enum Op_Type
{
Op_Add = 0,
Op_Sub = 1,
Op_Nul = 2,
Op_Div = 3
};
class Myoperator
{
public:
Myoperator()
{
result = 0;
numA = numB = 0;
}
virtual ~Myoperator()
{
}
virtual double getResult()
{
result = 0;
return result;
}
//检测输入的字符是否合法
static string checkNumberInput(string currentNumber, string inputString)
{
string result = "";
if (inputString == ".")
{
if (strstr(result.c_str(),".")==NULL)
{
if (currentNumber.size() == 0)
result = "0" + inputString;
else
result = currentNumber + inputString;
}
}
else if (currentNumber == "0")
{
result = inputString;
}
else
{
result = currentNumber + inputString;
}
return result;
}
double getNumA()
{
return numA;
}
double getNumB()
{
return numB;
}
protected:
double numA;
double numB;
double result;
private:
};
class operatorAdd : public Myoperator
{
public:
virtual double getResult()
{
result = numA+numB
return result;
}
protected:
private:
};
class operatorSub : public Myoperator
{
public:
virtual double getResult()
{
result = numA-numB
return result;
}
protected:
private:
};
class operatorNul : public Myoperator
{
public:
virtual double getResult()
{
result = numA*numB
return result;
}
protected:
private:
};
class operatorDiv : public Myoperator
{
public:
virtual double getResult()
{
ASSERT(numB!=0)
result = numA/numB
return result;
}
protected:
private:
};
class operatorFactory
{
public:
operatorFactory()
{
m_op = NULL;
}
~operatorFactory()
{
delete m_op;
m_op = NULL;
}
Myoperator* createOperate(Op_Type o_type)
{
switch (o_type)
{
case Op_Add:
m_op = new operatorAdd();
break;
case Op_Sub:
m_op = new operatorSub();
break;
case Op_Nul:
m_op = new operatorNul();
break;
case Op_Div:
m_op = new operatorDiv();
break;
}
return m_op;
}
protected:
private:
Myoperator*m_op;
};
int _tmain(int argc, _TCHAR* argv[])
{
operatorFactory*m_opFac = new operatorFactory();
Myoperator*m_op = m_opFac->createOperate(Op_Nul);
//...........................
return 0;
}
- 设计模式之简单工厂(sample Factory)模式
- 设计模式之简单工厂模式,factory
- 设计模式之简单工厂模式(Simple Factory Pattern)
- 设计模式之Simple Factory(简单工厂模式)
- 代码设计模式之简单工厂模式(Factory)
- 设计模式之简单工厂模式(Simple Factory)
- 【设计模式】之 Simple Factory 简单工厂
- 设计模式之简单工厂(Factory method)
- 设计模式之--工厂模式(Factory)
- 设计模式之--工厂模式(Factory)
- 设计模式之工厂模式(factory)
- 设计模式之工厂模式(Factory)
- 设计模式之工厂模式(Factory)
- 设计模式之工厂模式(Factory)
- Java设计模式(二):工厂模式(Factory)之简单工厂
- 设计模式之Static Factory模式(简单工厂模式)
- 设计模式-简单工厂(Simple Factory)
- 简单工厂设计模式(Simple Factory)
- 服务器控件OnClientClick调用js
- Freemarker 使用
- wubi安装ubuntu常见问题(FAQ)
- 栈中变量顺序 debug release 不一样
- Struts2.x+Spring3.x+MyBatis3.x 最简配置(+logback)
- 设计模式之简单工厂(sample Factory)模式
- 用libjpeg库生成jpeg文件(灰度)
- C++读取bmp位图入门
- Processing Bitmaps Off the UI Thread [在UI 线程之外处理Bitmap]
- php 数组排序
- Android.mk中输出打印信息
- Ajax中header()无法跳转的解决方法
- 如何做到 jQuery-free?
- 对梯度幅值进行非极大值抑制