重构if...else...或者switch程序块_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 重构if...else...或者switch程序块

重构if...else...或者switch程序块

 2014/12/4 13:08:05  Insus.NET  程序员俱乐部  我要评论(0)
  • 摘要:我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断。如下面这篇《用户控件(UserControl)使用事件Ver2》http://www.cnblogs.com/insus/archive/2011/11/18/2253605.html,就是一段代码:其实按上面的写法一点问题都没有,但是我们在审检代码看到这段代码时似乎要花点时间阅读,用意也不够明朗,藕合性也高。建议把每个case块写成一个独立的方法。然后再调用它,目的是为最小化方法。这样子
  • 标签:程序

我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断。如下面这篇《用户控件(UserControl) 使用事件 Ver2》http://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

 

发表评论
用户名: 匿名