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

转载于:https://www.cnblogs.com/wangyong969/archive/2011/01/03/1925068.html

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

  1. 关于重构之Switch的处理【二】

    前面写了一个Switch的处理的例子, public class Fun{ public void IFNumberid(int flag) {    switch (flag)            ...

  2. 重构(Refactoring)技巧读书笔记 之二

    重构(Refactoring)技巧读书笔记 之二<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:of ...

  3. 重构 java代码_java代码重构的方法学习

    2,8阅读 第一章  第一个案例 在此案例中使用了, 方法的提取(extract method),方法的移动(move method),临时变量的清除,变量及函数名重构,switch类型重构(repl ...

  4. Refactoring

    What Refacing: 重构(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 经典的 ...

  5. Java闲杂笔记摘抄

    以下内容不分先后顺序,均为个人学习期间做的笔记 方法设计 单元:一个类或者一组类(组件) 类采用名次结构 动词过去式+名次 ContextRefreshedEvent 动词ing + 名词 Initi ...

  6. Java开发组装电脑_设计模式-组装电脑入门简单工厂

    前言 简单工厂模式,虽然不在23种设计模式中.但是可以认为是工厂模式的一种特殊实现,并且在日常中使用广泛,所以还是值得我们去学习的. 定义简单工厂模式(Simple Factory Pattern): ...

  7. 单元测试:如何编写可测试的代码及其重要性

    原文来自互联网,由长沙DotNET技术社区编译.如译文侵犯您的署名权或版权,请联系小编,小编将在24小时内删除.限于译者的能力有限,个别语句翻译略显生硬,还请见谅. 作者:谢尔盖·科洛迪(SERGEY ...

  8. K8S之初入师门第一篇熟读手册

    文章目录 K8S深度解读:架构.组件.资源对象 一.k8s概述 1.1.官网:github地址:https://github.com/kubernetes/kubernetes 1.2.k8s英文官方 ...

  9. java多态替换switch_第1章 重构,第一个案例(3):运用多态取代switch

    3.运用多态取代与价格相关的条件逻辑 3.1 switch和"常客积分"代码的再次搬迁 (1)switch:最好不要在另一个对象的属性上运用switch语句 switch(getM ...

最新文章

  1. 修改wordpress地址(URL)导致不能登录后台
  2. 《Fabric 云存储的电子健康病历系统》(1)系统介绍
  3. Spring Boot入门(11)实现文件下载功能
  4. Codeforces 1153 C Serval and Parenthesis Sequence
  5. boost::container实现前向迭代的测试程序
  6. java 运行时类型_Java基础之RTTI 运行时类型识别
  7. MVC3.0+DWZ探索
  8. javaweb编辑器ckeditor配置_ckeditor编辑器在java项目中配置
  9. 创新Or模仿?浅谈“山寨”圈里的云计算
  10. lammps免费学习资料汇总
  11. 如何在CentOS系统服务器下搭建代理IP
  12. bugly怎么读_腾讯Bugly巨坑:使用不当造成UI界面卡死
  13. 制作简单的个人Logo
  14. Windows Azure 成为业内首家被授权为 FedRAMP JAB P-ATO 的供应商
  15. SJ127 篮球积分器
  16. 贪玩蓝月-大漠模拟脚本源码
  17. 使用signature在移动端做电子签名canvas画板随触摸滚屏的bug
  18. 矩阵合同与相似,为什么只有当C为正交阵时才能使既相似又合同?
  19. java regux_使用Unix命令在Java中打印Mac的序列号
  20. MySQL事务原理总结

热门文章

  1. htmlparser设置表单属性值
  2. SQL优化—— 大批量插入数据
  3. Learn About Salesforce Flow for Service
  4. Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
  5. C++——重载运算符和重载函数
  6. 定时器0工作方式2,定时1s
  7. CTFshow 文件上传 web159
  8. CTFshow 文件上传 web153
  9. CTFshow 命令执行 web118
  10. pinv--求矩阵的伪逆矩阵