Simplifying Conditional Expressions(简化条件表达式)
1.Decompose Conditional(分解条件表达式)
2.Consolidate Conditional Expressions(合并条件表达式)
3.Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
4.Remove Control Flag(移除控制标记)
5.Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)
6.Replace Conditional with Polymorphism(以多态取代条件表达式)
7.Introduce Null Object(引入null对象)
8.Indroduce Assertion(引入断言)
1.Decompose Conditional(分解条件表达式)
当有复杂的if else判断时,应该将条件判断抽成方法,使代码思路更清晰,即使是简短的判断,抽成方法也会对代码的可读性起到很大的提升作用.
|
|
像这个例子不知道会不会有点过头了?
2.Consolidate Conditional Expressions(合并条件表达式)
当众多条件的结果是一样时,应将其合并为一个方法.
|
|
3.Consolidate Duplicate Conditional Fragments(合并重复的条件片段)
条件判断中相同部分的代码应该移出条件表达式,这样你能看出来哪些是一样的哪些是不一样的。
|
|
这个哥一直是这样做的:)
4.Remove Control Flag(移除控制标记)
可以使用break,continue或return来替换控制标签,增强代码可读性
|
|
5.Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)
用卫语句代替所有特殊的case。卫语句:check the condition and return if the condition is true
|
|
6.Replace Conditional with Polymorphism(以多态取代条件表达式)
|
|
7.Introduce Null Object(引入null对象)
当每次取数据时如果都要去判空的话会非常耗体力,并且代码非常难看,还有可能有漏掉的情况。这时可以引入一个null对象来解决,null是在对象没有值时的默认值,省去判空的动作,easying+happy呀
|
|
8.Indroduce Assertion(引入断言)
通过断言来调试
|
|
Simplifying Conditional Expressions(简化条件表达式)的更多相关文章
- shell之条件表达式
conditional expressions are used by the [[ compound command and the test and [ builtin commands. ari ...
- Conditional Expressions
Conditional Expressions建立一些逻辑关系 The conditional expression classes from django.db import models clas ...
- [Django]模型提高部分--聚合(group by)和条件表达式+数据库函数
前言:本文以学习记录的形式发表出来,前段时间苦于照模型聚合中group by 找了很久,官方文章中没有很明确的说出group by,但在文档中有提到!!! 正文(最后编辑于2016-11-12): 聚 ...
- golang没有条件表达式?:
详见The Go Programming Language Specification中Expressions一章中未提及此表达式, 故其不支持. 再强调一次, GO不支持条件表达式 conditio ...
- [Inside HotSpot] C1编译器优化:条件表达式消除
1. 条件传送指令 日常编程中有很多根据某个条件对变量赋不同值这样的模式,比如: int cmov(int num) { int result = 10; if(num<10){ result ...
- Python3笔记012 - 3.3 条件表达式
第3章 流程控制语句 3.3 条件表达式 在程序开发中,经常会根据表达式的结果,有条件地进行赋值. # 返回两个数中较大的数 a = 10 b = 6 if a>b: r = a else: r ...
- Scala:条件表达式的好处
条件表达式的好处之一是:让代码更简洁,例如在一个需要根据不同条件收集不同值的场景中,多数语言提供的代码如下: ; ) { tmp = xxx; } ) { tmp = yyy; } else { tm ...
- Shell 条件表达式汇总
条件表达式 文件表达式 if [ -f file ] 如果文件存在if [ -d ... ] 如果目录存在if [ -s file ] 如果文件存在且非空 if [ -r f ...
- Python学习教程(learning Python)--3.3 分支语句的条件表达式详解
本节主要讨论分支语句的条件表达式问题. 在if或者if-else分支控制语句里由于都用到条件判断(表达式是真还是假),条件判断可以是一种关系运算也可以是布尔表达式. 本节将对if及if-else语句的 ...
随机推荐
- 20199324《Linux内核原理与分析》第十二周作业
格式化字符串漏洞实验 一. 实验描述 格式化字符串漏洞是由像 printf(user_input) 这样的代码引起的,其中 user_input 是用户输入的数据,具有 Set-UID root 权限 ...
- maven坐标 加速下载
<repositories> <repository> <id>aliyun</id> <name>aliyun</name> ...
- Invalid package name:a digit canno be the first character in a package segme
发现网上没有关于这个的解决方法 其实这个原因是因为下图红框里的是数字 把默认的这个直接删掉,用英语随便输入一个即可
- java数据库执行迁移报错Error creating bean with name 'flywayInitializer' defined in class path resource
报错原因 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayI ...
- TPO9-2Reflection in Teaching
Teachers, it is thought, benefit from the practice of reflection, the conscious act of thinking deep ...
- 解决 WinForm 重写 CreateParams 隐藏窗口以后的显示问题
WinForm 启动时隐藏窗体最简单有效的办法是重写 CreateParams protected override CreateParams CreateParams { get { base.Vi ...
- VerificationCodeService
package me.zhengjie.system.domain; import lombok.AllArgsConstructor; import lombok.Data; import lomb ...
- spring mvc 设置@Scope("prototype")
spring中bean的scope属性,有如下5种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例 prototype表示每次获得be ...
- C++ List的用法
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() 给list赋值 back() 返回最后一个元素 begin() ...
- [LC] 152. Maximum Product Subarray
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...