減少代碼冗余,封裝你的程序


剛才在論壇上看到一個問題,其中網友有帖出一個方法,如下。過多的代碼冗余過多的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循環。

看看測試效果:



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM