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:尝试采用状态法写逻辑状态复杂的程序。
posted on 2005-02-22 17:35  codeplay  阅读(574)  评论(1)    收藏  举报