//策略基类
class COperation
{
public:
intm_nFirst;
intm_nSecond;
virtualdoubleGetResult()
{
doubledResult=0;
returndResult;
}
};
//策略具体类—加法类
class AddOperation:publicCOperation
{
public:
AddOperation(inta,intb)
{
m_nFirst=a;
m_nSecond=b;
}
virtualdoubleGetResult()
{
returnm_nFirst+m_nSecond;
}
};
class Context
{
private:
COperation* op;
public:
Context(char cType)
{
switch(cType)
{
case '+':
op=new AddOperation(3,8)
break;
default:
op=new AddOperation();
break;
}
}
double?GetResult()
{
return? op->GetResult();
}
}
//客户端?
int main()
{
int a,b;
cin>>a>>b;
Context *test=new Context('+');
cout<<test->GetResult()<<endl;
return 0;
}
设计模式和工厂模式的结合
最新推荐文章于 2021-11-28 16:13:35 发布