策略模式-----C++实现(三)

2014-02-14 12:52:26 · 作者: · 浏览: 378

 

  //加法策略

  class AddStrategy: public ArithmeticStrategy

  {

  public :

  void Computing(Context *pContext)

  {

  cout<< "AddStrategyCompute Result is : " <<

  pContext->GetA()<< " + " GetB()<

  }

  };

  //减法策略

  class SubStrategy: public ArithmeticStrategy

  {

  public :

  void Computing(Context *pContext)

  {

  cout<< "SubStrategy Compute Result is : " <<

  pContext->GetA()<< " - " GetB()<

  }

  };

  //乘法策略

  class MulStrategy: public ArithmeticStrategy

  {

  public :

  void Computing(Context *pContext)

  {

  cout<< "MulStrategy Compute Result is : " <<

  pContext->GetA()<< " * " GetB()<

  }

  };

  //除法策略,这里仅仅做简单的例子,就不判断除数是否为0了

  class DivStrategy: public ArithmeticStrategy

  {

  public :

  void Computing(Context *pContext)

  {

  cout<< "DivStrategy Compute Result is : " <<

  pContext->GetA()<< " / " GetA() /pContext->GetB())<

  }

  };