博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构if...else...或者switch程序块
阅读量:7247 次
发布时间:2019-06-29

本文共 461 字,大约阅读时间需要 1 分钟。

我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断。如下面这篇《》,就是一段代码:

其实按上面的写法一点问题都没有,但是我们在审检代码看到这段代码时似乎要花点时间阅读,用意也不够明朗,藕合性也高。
建议把每个case块写成一个独立的方法。然后再调用它,目的是为最小化方法。
这样子,程序就可以改为:

修改到这里,我们需要复习一下设计模式的中介者(Mediator)模式,更多实例可参考《》 和《》 。意思就是说,当遇上有多个if或是switch时,我们是可以使用中介者设计模式来解决,说白了就是替换。
下面我们创建一个中介者:

写好了,我们就可以重构switch程序了:

实时执行演示,得到的结果与原来一模一样:

本篇有告诉我们,程序不是一次写好,而是经过重构才会写得完善,房子建好之后只能是毛坯房,是需要装修,Insus.NET对重构的理解,就是对原本质没有太大改变时,去做一些变动,适合舒适。重构的同时,往往会带有设计模式的理念进行。

本演示源程序可从下面链接下载:

 

转载地址:http://hunbm.baihongyu.com/

你可能感兴趣的文章
等比数列求和
查看>>
React组件的生命周期
查看>>
NV SDK 9.5, 10 and 11
查看>>
Thinking Of Matrix
查看>>
微软商业服务器部署系列3-windows serevr 2008介绍
查看>>
使用ASM4.0实现AOP的功能,监控每个方法的执行时间
查看>>
hdoj 4004 The Frog's Games(二分)
查看>>
<script>元素在XHTML中的用法
查看>>
Linux cp命令
查看>>
jQuery 对文档的操作
查看>>
Python面向对象之内置方法
查看>>
UVA 10564 Paths through the Hourglass(背包)
查看>>
ORM框架
查看>>
HDU 4993 Revenge of ex-Euclid(BestCoder Round #9)
查看>>
解决java compiler level does not match the version of the installed java project facet问题
查看>>
[Winform]Media Player组件全屏播放的设置
查看>>
asp.net mvc中在使用async的时候HttpContext为null的问题
查看>>
Kettle学习之Spoon简单使用
查看>>
Castle ActiveRecord 正确配置(Version3.0.0.0)
查看>>
C语言-回溯例3
查看>>