首页 > 代码库 > 工厂模式

工厂模式

业务逻辑.h

#pragma once
class Operation
{
protected:
 double numberA;
 double numberB;
 double result;
public:
 void setValue(double numberA, double numberB)
 {
  this->numberA = numberA;
  this->numberB = numberB;
 }
 virtual double getValue() = 0;
};
class OperationAdd :public Operation
{
public:
 double getValue()
 {
  result = numberA + numberB;
  return result;
 }
};
class OperationSub :public Operation
{
public:
 double getValue()
 {
  result = numberA - numberB;
  return result;
 }
};

工厂.h

#pragma once
#include "业务逻辑.h"
class OperationFactory
{
public:
 virtual Operation* CreateOperation() = 0;
};
class AddFactory:public OperationFactory
{
public:
 Operation* CreateOperation()
 {
  return new OperationAdd;
 }
};
class SubFactory:public OperationFactory
{
public:
 Operation* CreateOperation()
 {
  return new OperationSub;
 }
};

界面逻辑.h

#include <iostream>
using namespace std;
#include "工厂.h"
int main()
{
 double numberA;
 double numberB;
 char operate;
 cout << "请输入a+b的式子:" << endl;
 cin >> numberA >> operate >> numberB;
 Operation *oper
 OperationFactory *opr;
 switch (operate)
 {
 case ‘+‘:
  opr = new AddFactory;
  break;
 case ‘-‘:
  opr = new SubFactory;
  break;
 }
 oper = opr->CreateOperation();
 oper->setValue(numberA, numberB);
 cout << "结果为" << oper->getValue() << endl;
 system("pause");
 return 0;
}


本文出自 “sophoso的cs学习之路” 博客,请务必保留此出处http://sophoso.blog.51cto.com/9442872/1565683

工厂模式