重构第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     }

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Lisp语言简介_c++是什么语言

    Lisp语言简介_c++是什么语言摘自维基百科,原链接为:http://zh.wikipedia.org/zh/LISP因为Clojure是Lisp的一种的方言,所以我们可以先来了解一下Lisp这个比较小众的编程到底是什么~—–

  • idea2021.8.2激活码【中文破解版】

    (idea2021.8.2激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlTR0LFTT656-eyJsaWNlbnNlSWQi…

  • HTTP代理_gap加盟需要投资多少

    HTTP代理_gap加盟需要投资多少2019独角兽企业重金招聘Python工程师标准>>>…

    2022年10月29日
  • 关于zigbee协议栈各层的系统分析

    关于zigbee协议栈各层的系统分析随着传感器网络的大肆应用;随着物联网概念的爆发;随着通信技术的迅速发展,人们提出了在自身附近几米范围内通信的要求,这样就出现了个人区域网络PAN(PersonalAreaNetwork)和无线个人区域网络WPAN(WirelessPersonalAreaNetwork)的概念。WPAN网络为近距离范围内的设备建立无线连接,把几米到几十米范围内的多个设备通过无线方式连接在一起,使他们可以相互通信甚至接入LAN或者Internet。2001年8月成立的zigbee联盟就是一个针对WPAN网络而成立的

  • 卷积神经网络超详细介绍

    卷积神经网络超详细介绍1、卷积神经网络的概念2、发展过程3、如何利用CNN实现图像识别的任务4、CNN的特征5、CNN的求解6、卷积神经网络注意事项7、CNN发展综合介绍8、LeNet-5结构分析9、AlexNet10、ZFNet10.1意义10.2实现方法10.3训练细节10.4卷积网络可视化10.6总结11、VGGNet11.1结构11.2网络特点:1…

  • Word2vec负采样

    Word2vec负采样下文中的模型都是以Skip-gram模型为主。1、论文发展word2vec中的负采样(NEG)最初由Mikolov在论文《DistributedRepresentationsofWordsandPhrasesandtheirCompositionality》中首次提出来,是Noise-ContrastiveEstimation(简写NCE,噪声对比估计)的简化版本…

发表回复

您的电子邮箱地址不会被公开。

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