Java优化代码 复杂的表达式
来源:互联网 发布:淘宝联盟-阿里妈妈 编辑:程序博客网 时间:2024/05/20 17:59
当逻辑表达式或者算法的计算过程冗长的时候,类似下面的代码,会让我们阅读和理解的过程非常痛苦,例如:
if(
browser.toUpperCase().indexOf("SAFARI") > -1 ||
brower.toUpperCase().indexOf("CHROME") > -1 ||
brower.toUpperCase().indexOf("FIREFOX") > -1 ||
brower.toUpperCase().indexOf("IE") > -1){
//do something...
}
以上的逻辑没有问题,不会影响机器性能和运行,但是非常难以阅读,会对自己和阅读你代码的人造成压力,所以我建议使用解释性变量来优化类似以上复杂的代码,做法如下:
final String buc = browser.toUpperCase();
final boolean isSafari = buc.indexOf("SAFARI") > -1;
final boolean isChrome = buc.indexOf("CHROME") > -1;
final boolean isFireFox = buc.indexOf("FIREFOX") > -1;
final boolean isIe = buc.indexOf("IE") > -1;
if(isSafair || isChrome || isFireFox || isLe){
//do something
}
上面的写法非常有价值,通过良好的命名来重构之前复杂的逻辑表达式,代码逻辑清晰可见,甚至可以不用写注释,也不会影响代码阅读体验,可以举一反三,在系统中冗长的算法或者逻辑条件表达式中引入改方法来优化你的代码。
browser.toUpperCase().indexOf("SAFARI") > -1 ||
brower.toUpperCase().indexOf("CHROME") > -1 ||
brower.toUpperCase().indexOf("FIREFOX") > -1 ||
brower.toUpperCase().indexOf("IE") > -1){
//do something...
}
以上的逻辑没有问题,不会影响机器性能和运行,但是非常难以阅读,会对自己和阅读你代码的人造成压力,所以我建议使用解释性变量来优化类似以上复杂的代码,做法如下:
final String buc = browser.toUpperCase();
final boolean isSafari = buc.indexOf("SAFARI") > -1;
final boolean isChrome = buc.indexOf("CHROME") > -1;
final boolean isFireFox = buc.indexOf("FIREFOX") > -1;
final boolean isIe = buc.indexOf("IE") > -1;
if(isSafair || isChrome || isFireFox || isLe){
//do something
}
上面的写法非常有价值,通过良好的命名来重构之前复杂的逻辑表达式,代码逻辑清晰可见,甚至可以不用写注释,也不会影响代码阅读体验,可以举一反三,在系统中冗长的算法或者逻辑条件表达式中引入改方法来优化你的代码。
广告:关注头像二维码,获取更多Java真实的开发知识
阅读全文
0 0
- Java优化代码 复杂的表达式
- 提高你的Java代码质量吧:推荐在复杂字符串操作中使用正则表达式
- 提高你的Java代码质量吧:推荐在复杂字符串操作中使用正则表达式 .
- Java代码的优化
- 复杂的代码布局
- 复杂表达式的执行步骤
- 【数据结构】复杂表达式的求值
- Java用观察者模式重构复杂的业务代码
- Java代码的优化策略
- java代码的一些优化
- Java代码的优化策略
- Android的Java代码优化
- 优化你的Java代码
- 第二章 java基础(复杂表达式)
- Java的复杂数据类型
- 我的计算器. 用java实现的. 可以支持复杂表达式
- 《java-正则表达式提取复杂短信验证码》-(用户:654321,的验证码是:【123456】)
- 【计算器Java实现】基于栈的复杂表达式解析&&数值计算
- python可视化
- 11day_面向对象
- 通过公式计算圆周率
- resourcemanager java.lang.ClassNotFoundException: javax.activation.DataSource
- 【STL容器-vector用法总结(1)】
- Java优化代码 复杂的表达式
- 用ACE的Reactor模式实现网络通讯的例子
- Linux---(2)CentOS下yum命令详解
- PHP向数据库插入数据
- C#实现最小生成树
- 3375 数据结构实验之查找三:树的种类统计
- Makefile 中的 “=”,“:=”,“?=”,“+=”的区别
- jquery简易分页组件
- Linux C学习笔记 —— 字符串转换函数(stdlib.h)