您的位置:首页 > 其它

关于重构之Switch的处理【一】如果是有序的话,如何处理

2011-01-03 23:19 639 查看
今天晚上休息,坐在电脑边,不知道为什么,总感觉心里有很多的想写下来,可不知道该写些什么!突然来了灵感,觉得不如就写点重构相关的什么东西,也回顾一下自己今年一年的历程,2010年年初的时候,刚到公司,某一个中午的时候,看到部门角落里的一个书架上,堆着满满的书,就从其中选了一本《重构 改善既有代码的设计》一书,翻了起来,因为在这之前自己从来就没有接触过重构,也不知道重构是个什么概念,不过当我开始读这本书的时候,我发现他里面的内容似乎就是我一直苦苦寻找的东西,因为有时候我老是想改自己代码,可都不知道从何如手,他里面提到的方法,真的是都指到了代码为什么难读,难理解的点子上。所以这里,就先说一下,我在处理switch的时候,用的一些方法吧

例: public class Fun{

        public void IFNumberid(int flag)  

        {

              switch (flag)
         {
        case 1:
        Console.WriteLine("优秀");
        break;
        case 2:
         Console.WriteLine("良好");
          break;
        case 3:
          Console.WriteLine("一般");
          break;
        case 4:
           Console.WriteLine("不及格");
          break;

               default:

           Console.WriteLine("");
          break;
       }
  

        }  

}

以上实例,其实运行时并不会报任何的错误,而且计算机也能认识,但是我想问一下,如果我后面还有很多的switch,是不是大家得一直加case,慢慢是不是会变得越来越长呢,还是直接先来看重构后的代码吧

public class Fun{

        public void IFNumberid(int flag)  

        {

         string[] arryString={"","优秀","良好","一般","不及格"};

          Console.WriteLine(arryString[flag]);

        }  

}

看看之前的代码和现在的代码,是不是有了很大的改进呢!行数从十多行,缩短到了几行,是不是更加好读了呢!以上实例仅仅是在switch中 case语句是连续的数字情况之下,当然如果不是连续的也有其实办法可以处理( 自己想想。。。),我的建议是在代码中尽量少用switch的就少用,不用的就不用,因为switch越多,你的代码越难读懂,我还是相信一句话,让机器读懂你的代码很容易,让人读懂你的代码才是最重要的,另外如果你还是经常按switch的语法写的话,不妨想想可能还有其他的算法可以替代。

好了,算是一个最简单的重构技巧到此就结束了,在提醒一句,重构不等于重搞,它也跟性能优化一点关系也没有,如果原代码有BUG,那么在代码重构之后,依然存在BUG,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐