Business logic. h
#pragma onceclass 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; }};
Simple factory. h
# Pragma once # include "business logic. H "class operationfactory {public: static operation * createoperation (char operate) {operation * operator; Switch (operate) {Case '+': condition = new operationadd; return condition; break; case '-': condition = new operationsub; return condition; break ;}}};
Interface logic. cpp
# Include <iostream> using namespace STD; # include "factory. H "int main () {double numbera; double numberb; char operate; cout <" Enter the expression of A + B: "<Endl; cin> numbera> operate> numberb; Operation * operator; operator = operationfactory: createoperation (operate); operator-> setvalue (numbera, numberb ); cout <"Result:" <strong-> getvalue () <Endl; System ("pause"); Return 0 ;}
This article from the "sophoso CS learning path" blog, please be sure to keep this source http://sophoso.blog.51cto.com/9442872/1565682
Simple factory Mode