重構if...else...或者switch程序塊


我們在開發asp.net時,經常有使用if...else...或者是使用switch來進行多個條件判斷。如下面這篇《用戶控件(UserControl) 使用事件 Ver2http://www.cnblogs.com/insus/archive/2011/11/18/2253605.html,就是一段代碼:


其實按上面的寫法一點問題都沒有,但是我們在審檢代碼看到這段代碼時似乎要花點時間閱讀,用意也不夠明朗,藕合性也高。

建議把每個case塊寫成一個獨立的方法。然后再調用它,目的是為最小化方法。


這樣子,程序就可以改為:


修改到這里,我們需要復習一下設計模式的中介者(Mediator)模式,更多實例可參考《設計模式--中介(Mediator)模式http://www.cnblogs.com/insus/p/4134383.html 和《開發(ASP.NET程序)把寫代碼寫至最有面向對象味道http://www.cnblogs.com/insus/p/4139346.html 。意思就是說,當遇上有多個if或是switch時,我們是可以使用中介者設計模式來解決,說白了就是替換。

下面我們創建一個中介者:


寫好了,我們就可以重構switch程序了:


實時執行演示,得到的結果與原來一模一樣:


本篇有告訴我們,程序不是一次寫好,而是經過重構才會寫得完善,房子建好之后只能是毛坯房,是需要裝修,Insus.NET對重構的理解,就是對原本質沒有太大改變時,去做一些變動,適合舒適。重構的同時,往往會帶有設計模式的理念進行。

本演示源程序可從下面鏈接下載:
http://download.cnblogs.com/insus/Refactoring/fact_switch_mediator_pattern.rar

 


免責聲明!

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



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