與集中決策相對應的就是分散決策。下面的代碼是按分散決策的思路寫的。
class P2
{
private:
int m_nVal;
public:
int fun(int nVal1,int nVal2,int nVal3)const
{
if(m_nVal<60)
return nVal1;
else if(m_nVal==60)
return nVal2;
else if(m_nVal>60)
return nVal3;
return -1;
}
};
class P1
{
private:
int m_nVal;
public:
int fun(const P2& aP2)const
{
if(m_nVal<60)
return aP2.fun(0,1,2);
else if(m_nVal==60)
return aP2.fun(3,4,5);
else if(m_nVal>60)
return aP2.fun(6,7,8);
return -1;
}
}; www.2cto.com
int fun(const P1& aP1,const P2& aP2)
{
return aP1.fun(aP2);
}
原先存在fun的函數裡的if-else判斷都移到了類的內部,這才是面向對象的寫法。每個類對自己內部數據負責,並依此做出決策。
摘自 acloudhuang的專欄