简单工厂模式
来源:互联网 发布:nodejs mysql github 编辑:程序博客网 时间:2024/05/20 12:25
http://blog.csdn.net/tianshuai11/article/details/7671097
根据《大话设计模式》里的例子编写的
//simpleFactory.cpp#include <iostream>#include <string>#include "operation.h"using namespace std;int main(){ double numA, numB; Operation *oper = NULL; oper = OperationFactory::createOperation('*'); if(oper != NULL) { oper->setNumA(3.89); oper->setNumB(4.78); cout << "Result is: " << oper->getResult() << endl; } return 0;}
//operation.h
#ifndef _OPERATION_H_#define _OPERATION_H_class Operation{ public: Operation(){ numA = 0.0; numB = 0.0;} virtual ~Operation(){} double getNumA(); double getNumB(); void setNumA(double A); void setNumB(double B); virtual double getResult() {return 0;} protected: double numA; double numB;};class Add: public Operation{ public: Add() {} ~Add() {} double getResult();};class Sub: public Operation{ public: Sub() {} ~Sub() {} double getResult();};class Mul: public Operation{ public: Mul() {} ~Mul() {} double getResult();};class Div: public Operation{ public: Div() {} ~Div() {} double getResult();};class OperationFactory{ public: OperationFactory() {} ~OperationFactory() {} static Operation *createOperation(char op);};double Operation::getNumA(){ return this->numA;}double Operation::getNumB(){ return this->numB;}void Operation::setNumA(double A){ this->numA = A;}void Operation::setNumB(double B){ this->numB = B;}double Add::getResult(){ return numA + numB;}double Sub::getResult(){ return numA - numB;}double Mul::getResult(){ return numA * numB;}double Div::getResult(){ if(numB == 0.0) return 0; return numA / numB;}Operation *OperationFactory::createOperation(char op){ Operation *oper = NULL; switch(op) { case '+': oper = new Add(); break; case '-': oper = new Sub(); break; case '*': oper = new Mul(); break; case '/': oper = new Div(); break; default: oper = NULL; break; } return oper;}#endif
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- 搜索资料的方法
- Android Fragment 实例
- 16.java图形用户界面编程
- USACO Ordered Fractions
- 挥霍青春
- 简单工厂模式
- android Fragments详解四:管理fragment
- android Fragments详解七:fragement示例
- Microsoft JDBC Driver 4.0 for SQL Server下载及安装使用说明
- awk之FS的指定
- 【Visual C++】游戏开发笔记二十六 DirectX 11各组件的介绍&第一个DirectX 11 Demo的创建
- 关于 “请使用支持 JDBC 4.0 的 sqljdbc4.jar 类库” 出错解决办法
- 阿里云redhat5.4企业版安装java web环境
- poj 2498 StuPId