应用场景:
将一系列算法封装起来,当算法发生变化时,通过更改算法接口实现更换算法;
代码实现:
#include<iostream>
using namespace std;
class Operator
{
public:
double dLeftOperator;
double dRightOperator;
virtual double GetResult() = 0;
virtual void SetValue(double leftValuue, double rightValue) = 0;
};
class OperatorA :public Operator
{
public:
void SetValue(double leftValuue, double rightValue)
{
this->dLeftOperator = leftValuue;
this->dRightOperator = rightValue;
}
double GetResult()
{
return dLeftOperator + dRightOperator;
}
};
class context
{
private:
Operator* op;
public:
context(Operator* op)
{
this->op = op;
}
void DisplayResult()
{
cout << op->GetResult() << endl;
}
};
int main()
{
Operator* op = nullptr;
op = new OperatorA;
op->SetValue(12.1, 22.3);
context* ct = new context(op);
ct->DisplayResult();
delete ct;
delete op;
return system("pause");
}