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

     今天晚上休息,坐在电脑边,不知道为什么,总感觉心里有很多的想写下来,可不知道该写些什么!突然来了灵感,觉得不如就写点重构相关的什么东西,也回顾一下自己今年一年的历程,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,

posted @ 2011-01-03 23:19  一碗豆芽汤(OneV)  阅读(597)  评论(0编辑  收藏  举报