集中决策和分散决策(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++ ,