程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 集中決策和分散決策(1)

集中決策和分散決策(1)

編輯:C++入門知識

何為集中決策?先看一段代碼:

class P1
{
public:
    int m_nVal;
};

class P2
{
public:
    int m_nVal;
};

int fun(const P1& aP1,const P2& aP2)
{
    if(aP1.m_nVal<60)
    {
        if(aP2.m_nVal<60)
        {
            return 0;
        }
        else if(aP2.m_nVal==60)
        {
            return 1;
        }
        else if(aP2.m_nVal>60)
        {
            return 2;
        }
    }
    else if(aP1.m_nVal==60)
    {
        if(aP2.m_nVal<60)
        {
            return 3;
        }
        else if(aP2.m_nVal==60)
        {
            return 4;
        }
        else if(aP2.m_nVal>60)
        {
            return 5;
        }
    }
    else if(aP1>60)
    {
        if(aP2.m_nVal<60)
        {
            return 6;
        }
        else if(aP2.m_nVal==60)
        {
            return 7;
        }
        else if(aP2.m_nVal>60)
        {
            return 8;
        }
    }
    return -1;
}

        上面的代碼的if-else是兩層,還不算多,實際工程中還有更多層的。如果經常用C寫程序的朋友類似代碼應該經常寫。
        這段代碼的問題在於,if-else的判斷全部集中到上面的函數中,這種集中決策對於小的程序當然問題不大,但是如果將幾十個類甚至幾百個類的決策都集中過來,可想而知,上面這個 fun 函數代碼一定異常復雜,復雜到最後沒有人能控制。這種寫法我稱為“集中決策”。

摘自 acloudhuang的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved