減小代碼冗餘,封裝你的程序

剛纔在論壇上看到一個問題,其中網友有帖出一個方法,以下。過多的代碼冗餘過多的if判斷。



下面Insus.NET按照本身的相法與習慣,重構這個方法,但願代碼冗餘的地方,可以簡化,須要封裝的地方,把它們封裝。
第一步,你們能夠看到每一個if判斷塊內,都有一句:測試

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


結果以下,冗餘的都被Insus.NET comment out了,只留下Highlight的一句:



第二步,咱們又看到每一個if判斷塊內,都有兩句代碼,是判斷目錄是否存在,若是不存在,建立目錄的。spa

 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循環。

看看測試效果:


3d

相關文章
相關標籤/搜索