bug人生--状态在编程中的使用
善于使用状态会使你的程序可读性大大提高。
If---Else style的代码看起来这样:
if(m_pObject1->GetStatus1() && m_pObject2->GetStatus2() && m_pObject3->GetStatus3())
// Do something here;
else if(!m_pObject1->GetStatus1() && m_pObject2->GetStatus2())
// Do something here;
else if......
这种状态复合的程序看起来一定很累,而且要是加了什么新功能,肯定语句就变得混乱,最后代码就越来越难看懂了。
如果刚开始就定义好状态,代码就变成这样:
switch(m_pObject1->GetStatus1())
{
case O1S1_1:
{
switch(m_pObject2->GetStatus2())
{
case O2S2_1:
...
switch(m_pObject3->GetStatus3())
{
case O3S3_1:
...
}
}
}
}
这在状态复杂的程序中能够更好的表达逻辑,更方便以后的维护。在增加功能之后,只是要处理的状态表格变大了,对程序原有的逻辑影响比较小。
Note:尝试采用状态法写逻辑状态复杂的程序。
If---Else style的代码看起来这样:
if(m_pObject1->GetStatus1() && m_pObject2->GetStatus2() && m_pObject3->GetStatus3())
// Do something here;
else if(!m_pObject1->GetStatus1() && m_pObject2->GetStatus2())
// Do something here;
else if......
这种状态复合的程序看起来一定很累,而且要是加了什么新功能,肯定语句就变得混乱,最后代码就越来越难看懂了。
如果刚开始就定义好状态,代码就变成这样:
switch(m_pObject1->GetStatus1())
{
case O1S1_1:
{
switch(m_pObject2->GetStatus2())
{
case O2S2_1:
...
switch(m_pObject3->GetStatus3())
{
case O3S3_1:
...
}
}
}
}
这在状态复杂的程序中能够更好的表达逻辑,更方便以后的维护。在增加功能之后,只是要处理的状态表格变大了,对程序原有的逻辑影响比较小。
Note:尝试采用状态法写逻辑状态复杂的程序。
浙公网安备 33010602011771号