zoukankan      html  css  js  c++  java
  • 减少代码冗余,封装你的程序

    刚才在论坛上看到一个问题,其中网友有帖出一个方法,如下。过多的代码冗余过多的if判断。



    下面Insus.NET按照自己的相法与习惯,重构这个方法,希望代码冗余的地方,能够简化,需要封装的地方,把它们封装。
    第一步,大家可以看到每个if判断块内,都有一句:

    fileUpload.PostedFile.SaveAs(myDicPath + "\" + fileName);


    结果如下,冗余的都被Insus.NET comment out了,只留下Highlight的一句:



    第二步,我们又看到每个if判断块内,都有两句代码,是判断目录是否存在,如果不存在,创建目录的。

     if (!Directory.Exists(myDicPath))
                    Directory.CreateDirectory(myDicPath);


    我们可以把它封装成一个方法:


    重构之后,变成这个样子:



    第三步,这个多个if判断块,Insus.NET想法是,去除所在if判断。不可能吧!  是的。看下面的重构过程就行了。在实现之前,先要把这个目录与文件扩展名规划一下:



    再写一个方法,带一个参数,传入文件扩展类型名,获取目录名称。



    Ok,接下来,我们又可以重构程序了:


    嗯,拿掉comment out的代码,留下:



    下面的内容于2013-08-07 16:25分补充:
    如果真想一个if 也不想要了,可以再重构一下下面的方法:



    非常抱歉,上面最后一个补充方法有点小问题,因此Insus.NET再于2013-08-07 21:56分重构一下:


    即是说,找到匹配之后,马上break foreach循环。

    看看测试效果:


  • 相关阅读:
    【阿里的感悟】质量该如何做? .(转载)
    java linux 配置环境
    Spring Bean属性绑定Bean返回值
    Spring BeanNameAutoProxyCreator 与 ProxyFactoryBean
    Spring Aop之(二)Aop 切面声明和通知
    Ubuntu开机自动启动Script
    转战博客园!
    linux 系统管理11 ——系统安全及应用
    linux awk
    Rsync数据同步工具
  • 原文地址:https://www.cnblogs.com/insus/p/3243143.html
Copyright © 2011-2022 走看看