重构第30天 尽快返回 (Return ASAP)

重构第30天 尽快返回 (Return ASAP)

理解:把条件语句中复杂的判断用尽快返回来简化。

详解:如首先声明的是前面讲的”分解复杂判断“,简单的来说,当你的代码中有很深的嵌套条件时,花括号就会在代码中形成一个长长的箭头。我们经常在不同的代码中看到这种情况,并且这种情况也会扰乱代码的可读性。下代码所示,HasAccess方法里面包含一些嵌套条件,如果再加一些条件或者增加复杂度,那么代码就很可能出现几个问题:1,可读性差 2,很容易出现异常 3,性能较差

 

 1 public class Order
 2     {
 3         public Customer Customer { get; private set; }
 4 
 5         public decimal CalculateOrder(Customer customer, IEnumerable<Product> products, decimal discounts)
 6         {
 7             Customer = customer;
 8             decimal orderTotal = 0m;
 9 
10             if (products.Count() > 0)
11             {
12                 orderTotal = products.Sum(p => p.Price);
13                 if (discounts > 0)
14                 {
15                     orderTotal -= discounts;
16                 }
17             }
18 
19             return orderTotal;
20         }
21     }

那么重构上面的代码也很简单,如果有可能的话,尽量将条件判断从方法中移除,我们让代码在做处理任务之前先检查条件,如果条件不满足就尽快返回,不继续执行。下面是重构后的代码:

 1  public class Order
 2     {
 3         public Customer Customer { get; private set; }
 4 
 5         public decimal CalculateOrder(Customer customer, IEnumerable<Product> products, decimal discounts)
 6         {
 7             if (products.Count() == 0)
 8                 return 0;
 9 
10             Customer = customer;
11             decimal orderTotal = products.Sum(p => p.Price);
12 
13             if (discounts == 0)
14                 return orderTotal;
15 
16             orderTotal -= discounts;
17 
18             return orderTotal;
19         }
20     }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109076.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Mac突然连不上WiFi解决步骤「建议收藏」

    Mac突然连不上WiFi解决步骤「建议收藏」事件描述:上午用图书馆无线看电视过程中,莫名就网断了,开始以为是图书馆网问题,后来手机开热点也无法连接。去年刚买Mac时也出现过这种问题,后来换了主板,心慌还以为又要去修理了o(╯□╰)o 开始无用尝试部分: 1.打开设置-网络-位置,更改为自动 2.关机,立即同时按下command+option+R+P,听到三声后松手 解决步骤:移除网络配置和偏好文件 手动删除网络plist…

    2022年6月18日
  • 计算机用户名和密码怎么查_计算机名在哪看

    计算机用户名和密码怎么查_计算机名在哪看有时外人随意使用翻看办公电脑的问题,特别是当电脑里面存储了一些保密文件的时候,是不能随便让人看的,所以小设置电脑开机密码是有发要的。下面是学习小编给大家整理的有关介绍windowsxp电脑设置、修改开机密码的方法,希望对大家有帮助!windowsxp电脑设置、修改开机密码的方法首先,点击【开始】菜单,然后选择”控制面板“选项。在控制面板的对话框中找到”用户账户“选项,并点击进入。在用户账户对话…

    2022年10月14日
  • 服务器Hot Spare热备

    服务器Hot Spare热备HotSpare:热备用当一个正在使用的磁盘发生故障后,一个空闲、加电并待机的磁盘将马上代替此故障盘,此方法就是热备用。热备用磁盘上不存储任何的用户数据,最多可以有8个磁盘作为热备用磁盘。一个热备

    2022年7月4日
  • java开发webservice接口_webservice接口的开发和调用

    java开发webservice接口_webservice接口的开发和调用一、WebService的开发手段使用Java开发WebService时可以使用以下两种开发手段1、使用JDK开发(1.6及以上版本)2、使用CXF框架开发(工作中)二、使用JDK开发WebService2.1、开发WebService服务器端1、定义一个interface,使用@WebService注解标注接口,使用@WebMethod注解标注接口中定义的所有方法,如下所示:1package…

    2022年7月16日
  • DropDownList的常用属性和事件「建议收藏」

    DropDownList的常用属性和事件「建议收藏」SelectedItem属性设置或获取下拉菜单的选中项,该属性的类型为System.Web.UI.WebControls.ListItem.所有列表控件(ListControl)中的项都是该类型,它

    2022年7月2日
  • php 替换某个字符,php如何将指定字符串替换?

    php 替换某个字符,php如何将指定字符串替换?php将指定字符串替换的方法:1、【strtr】为转换指定字符,代码为【stringstrtr(string$str,$replace_pairs)】;2、【str_replace()】函数以其他字符替换字符串中的一些字符。php将指定字符串替换的方法:在PHP中,有两个函数可以实现字符串替换,strtr()和str_repalce()函数。一、首先我们简单了解下strtr()函数的定义…

    2022年5月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号