当前位置:编程学习 > C/C++ >>

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

何为集中决策?先看一段代码:

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的专栏

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,