程序优化是用于消除程序中大量的if else这种判断语句
using namespace std;
class CashSuper
{
public:
virtual double GetTotalCash(double ddwMoney) = 0;
};
class CashNormal:public CashSuper
{
public:
virtual double GetTotalCash(double ddwMoney)
{
return ddwMoney;
}
};
class CashRebate: public CashSuper
{
public:
CashRebate(float dwRebate):m_Rebate(dwRebate)
{
}
virtual double GetTotalCash(double ddwMoney)
{
return m_Rebate * ddwMoney;
}
private:
float m_Rebate;
};
class CashContext
{
public:
CashContext()
{
}
CashContext(CashSuper* pstTmpCashSuper)
{
m_pstCashSuper = pstTmpCashSuper;
}
void SetCashStrategy(CashSuper* pstTmpCashSuper)
{
m_pstCashSuper = pstTmpCashSuper;
}
double GetTotalCash(double ddwMoney)
{
return m_pstCashSuper->GetTotalCash(ddwMoney);
}
private:
CashSuper *m_pstCashSuper;
};
int main(void)
{
CashContext* stCashContext = new CashContext(new CashNormal());
cout<<"应付价钱为: "<< stCashContext->GetTotalCash(100)<< endl;
stCashContext = new CashContext(new CashRebate(0.8));
cout<<"应付价钱为: "<< stCashContext->GetTotalCash(100)<< endl;
return 0;
}
///
[root]$ ./strategy
应付价钱为: 100
应付价钱为: 80