Switch重构处理】的更多相关文章

public class Fun{ public void IFNumberid(int flag) { switch (flag) { : Console.WriteLine("优秀"); break; : Console.WriteLine("良好"); break; : Console.WriteLine("一般"); break; : Console.WriteLine("不及格"); break; default:…
理解:策略就是平常设计模式中所说的策略模式.因为当你有一个庞大的switch方法的时候,每一次新加一个条件,都要去修改这个方法,这样耦合性太高,不易维护也不易扩展.这样我们就可以使用策略的设计模式,使得每一种情况都封装在自己的类中,来提高扩展性和降低耦合性. 详解: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _31DaysRefactor { pu…
3. 运用多态取代与价格相关的条件逻辑 3.1 switch和“常客积分”代码的再次搬迁 (1)switch:最好不要在另一个对象的属性上运用switch语句 switch(getMovie().getPriceCode()) //在movie对象的priceCode属性上运用switch { //这意味着可以将getCharge函数从Rental类移动到Movie类去 //选择在Movie类中封装计算费用功能,还有一个 //原因,就是可以控制因影片类型变化导致的计算 //方式变化,从而对其它对…
我们在开发asp.net时,经常有使用if...else...或者是使用switch来进行多个条件判断.如下面这篇<用户控件(UserControl) 使用事件 Ver2>http://www.cnblogs.com/insus/archive/2011/11/18/2253605.html,就是一段代码: 其实按上面的写法一点问题都没有,但是我们在审检代码看到这段代码时似乎要花点时间阅读,用意也不够明朗,藕合性也高. 建议把每个case块写成一个独立的方法.然后再调用它,目的是为最小化方法.…
重构没有固定的形式,多年来我使用过不同的版本,并且我敢打赌不同的人也会有不同的版本. 该重构适用于这样的场景:switch语句块很大,并且会随时引入新的判断条件.这时,最好使用策略模式将每个条件封装到单独的类中.实现策略模式的方式是很多的.我在这里介绍的策略重构使用的是字典策略,这么做的好处是调用者不必修改原来的代码. public class ClientCode { public double CalculateShipping() { ShippingInfo shippingInfo =…
http://www.cnblogs.com/insus/p/4142264.html 重构if...else...或者switch程序块 为 中介者(Mediator)模式.的思考 首先普世的编程架构好坏评判是SOLID(单一功能.开闭原则.里氏替换.接口隔离以及依赖反转) 具体来说,就是当有需求的curd时候,代码应该1)涉及的文件尽可能的少2)修改的文件行数尽可能的少3)修改的文件行块间距不应该太长,避免程序员在一个文件中来回移动.鼠标点击数尽可能少.避免影响思路.4)不应该影响其他模块的…
软件重构是改善代码可读性.可扩展性.可维护性等目的的常见技术手段.圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一. C语言开发的项目中,switch/case代码块是一个很容易造成圈复杂度超标的语言特性,所以本文主要介绍下降低switch/case圈复杂度的重构方法(如下图).switch圈复杂度优化重构可分为两部分:程序块的重构和case的重构.程序块重构是对代码的局部优化,而case重构是对代码…
switch作为条件判断(分支结构)中的一种方式,以至于我们对于它使用的频率处于较高水平的水平线上,为此我们应该使用Extra method来对这类判断条件进行抽取,另外从我自身而言,我发现我以前常常在当中根据不同的值,做不同的操作,而这类操作我是直接写在case里面的!而这里<重构>的作者并没有明确的讲明这样做的好处到底在哪里?我们现在就拿我们前一篇文章来作接下来的讲解. 没有看过前一篇文章的,点击这里带你看哦 现在我们模拟一个场景,作为项目经理的老王,告诉程序员小新说:现在我们的影片类型需…
在代码中,时常有就一类型码(Type Code)而展开的如 switch ... case 或 if ... else if ... else 的条件表达式.随着项目业务逻辑的增加及代码经年累月的修改,这些条件判断逻辑往往变得越来越冗长.特别是当同样的逻辑判断出现在多个地方的时候(结构示意如下),代码的可读性和维护难易程度将变得非常的糟糕.每次修改时,你必须找到所有有逻辑分支的地方,并修改它们. switch(type) { ": ... break; ": ... break; ca…
最近几天,在进行重构的时候,遇到了一个极其丑陋的代码(自己写的 /捂脸  当时时间紧,于是....),今天去重构的时候无论如何也想不出方法,去除这个丑陋的switch语句 ,于是写篇博客,让自己记住这个问题 . switch (status) { : return View("Create", applyBlog); : return View(); : return View("PersonalBlogPage"); : return View("Cre…