• 关于重构之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,

  • 相关阅读:
    log4net的使用
    在asp.net中使用 log4net 笔记
    JQuery插件开发
    使用Visual Studio宏来自动生成代码 [ Visual Studio | 宏 | 自动生成代码 ]
    如何在JBuilder 2006中打Jar包,并生成Exe文件
    如何更改java应用程序标题栏默认图标
    《ASP.NET AJAX程序设计》图书相关资源总索引
    Eclipse汉化的步骤,非常的详细
    家庭和睦、人生平淡也是一种成功
    程序员节诗词
  • 原文地址:https://www.cnblogs.com/wangyong969/p/1925068.html
Copyright © 2020-2023  润新知