首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

>> Java 开发技巧:减少魔法值的使用

前言 代码中有魔法值会造成代码可读性低(与代码量成正比)。还会造成维护困难,改动一个数值便要大动干戈,牵一发而动全身。应当尽力消灭或减少魔法值,提高维护效率和代码可读性。...1.1 魔法值 当我们开发或重构老代码中遇到了类似这种写法: public void attend(String value) { if ("0".equals(value))...从 Java语法上无懈可击,但是从业务上却让人无法理解其中的含义。上面看到的字符窜的 0和1 统称为魔法值 。...1.2 魔法值的处理方式 上面的代码我们往往需要通过上下文推断出来,如果是非常复杂的业务或者十年前的代码那就更惨了,搞不好文档也没有。所以我们要尽量避免出现魔法值。今天就来讲几种避免魔法值的操作。...1.2.2 使用接口 既然我们使用了静态常量那么我们可以将魔法值封装入接口也是可以的。

24740

开发经验|如何优雅的减少魔法值使用

简介: 代码中有魔法值会造成代码可读性低(与代码量成正比)。还会造成维护困难,改动一个数值便要大动干戈,牵一发而动全身。应当尽力消灭或减少魔法值,提高维护效率和代码可读性。...前言 代码中有魔法值会造成代码可读性低(与代码量成正比)。还会造成维护困难,改动一个数值便要大动干戈,牵一发而动全身。应当尽力消灭或减少魔法值,提高维护效率和代码可读性。...1 魔法值Java开发中,Java魔法值又叫做魔法数值、魔法数字、魔法值。...从 Java语法上无懈可击,但是从业务上却让人无法理解其中的含义。上面看到的字符窜的 "0" 和 "1" 统称为魔法值 。...2 魔法值的处理方式 上面的代码我们往往需要通过上下文推断出来,如果是非常复杂的业务或者十年前的代码那就更惨了,搞不好文档也没有。所以我们要尽量避免出现魔法值。今天就来讲几种避免魔法值的操作。

19020

常量与配置文件的应用考量

常量在实际开发中使用非常多,这里以我博客为例,我的博客系统主要以WordPress作为模仿对象,我的常量类如下: 其中的RoleConst.java内容如下: 一.我为什么使用常量来定义这些?...最主要的一个原因是它能解决魔法值问题。特别是代码中有switch、if和其它重复多次的变量值,通常这些值都可以定义为常量。魔法值太多不利于代码的维护。...魔法值代码例子如下: 12 String key = "Id#taobao_" + tradeId;cache.put(key, value); 二、常量与配置文件的区别?...常量通常是一个或多个Java类,这些类的包前缀通常为constant。...这里参考阿里巴巴Java开发手册: 1.【强制】不允许任何魔法值(即未经定义的常量)直接出现在代码中。 2.

1.2K01

一位【田】姓学生的2016年【java】小游戏全码

目录 游戏说明 ​编辑 属性.java 对战.java PK.java 编译 ---- 游戏说明 1,登陆: 初始账号为 1   初始密码为  1  2,注册:注册新账号密码替代原账号 3,选择人物...造成200伤害并沉默敌方一回合   地方只能使用普通攻击(a)     w 消耗35点魔法值 回复240生命值   回复量后生命值不超过自身最大生命值          e 消耗40点魔法值 造成...26伤害     r 消耗60点魔法值 造成400基础伤害加上敌方最大生命值10%的真实伤害   皇子技能:     q 消耗30点魔法值 造成300点伤害     w 消耗35点魔法值 回复...*/ private int WM1=35; /*W技能消耗魔法值*/ private int EM1=40; /*E技能消耗魔法值*/ private int RM1=60; /*R...import java.util.Random; import java.util.Scanner; public class 对战 extends 属性 { Scanner sc=new Scanner

40410

“备孕期”的Java程序员一定要学会抽象 | 《Java编程思想拆书》

(程序员节)进入一家“青苗科技工作室”(我组织的一个接私活的小团队;有Web全栈、安卓等方面的项目可以私聊我哦),正式开始编写为自己带来第一桶金的Java代码……距今,我已经有8年的Java编程经验了…...: public class SunWukong { private Integer healthPoint;// 生命值 private Integer magicPoint;// 魔法值...* 丛林之舞 */ private void jungleDance() { } } 当我们把孙悟空看成一个对象的时候,编程就变得简单了起来;我们给他两个属性(生命值和魔法值...所有的英雄都可以抽象为一个类(对象是类的实例化),这个类包含了英雄对应的成长属性(生命值、魔法值、伤害值、护甲值等等),以及对应的技能行为。那么,怎么区分每个英雄的不同呢?...比如说冰美人水晶室女是一个魔法辅助类的英雄,因此,她的初始化生命值自然比敏捷类的齐天大圣低一些,但魔法值高一些;另外,他们的技能也完全不同——孙悟空拿着一根金箍棒,所以他的技能就有棒击大地;水晶室女拿着一根法杖

49240

代码写成这样,老夫无可奈何!

3、最牛逼的排序算法 据说是一个月薪 9K 的 Java 程序员,因老板让他写一个排序算法,然后他就写了一段屌炸天的休眠排序算法,接着他就被老板开除了…… 排序算法代码大概是这样的: ?...4、休眠的最高境界 /** * 获取未来几天的日期 * @param days 指定的天数 * @author 微信公众号:Java技术栈 * @return */ public static...7、魔法值的真谛 曾经检查代码时,发现代码中很多魔法值,叫同事要定义成公共常量,结果来了这么一段: private final static int ZERO = 0; private final static...看到上面的常量定义,我真想打人,虽然魔法值是没了,但又定义了一些没有意义的常量,完全没有理解修改魔法值的真谛,这和脱裤子放屁有什么区别? 上面还只是一个简单的示例,实际审查情况远比你想象的糟糕。...我就见过同事写出这样的代码,是赶时间呢,还是真的不会设计模式,一个构造函数参数能写这么多,且不说魔法值,这么长,看一眼都觉得头大。

42920

代码写成这样,老板把我开除了,最让人感到无可奈何的代码,你可千万别这么写!

3、最牛逼的排序算法 据说是一个月薪 9K 的 Java 程序员,因老板让他写一个排序算法,然后他就写了一段屌炸天的休眠排序算法,接着他就被老板开除了…… 排序算法代码大概是这样的: ?...4、休眠的最高境界 /** * 获取未来几天的日期 * @param days 指定的天数 * @author 微信公众号:Java技术栈 * @return */ public static...7、魔法值的真谛 曾经检查代码时,发现代码中很多魔法值,叫同事要定义成公共常量,结果来了这么一段: private final static int ZERO = 0; private final static...看到上面的常量定义,我真想打人,虽然魔法值是没了,但又定义了一些没有意义的常量,完全没有理解修改魔法值的真谛,这和脱裤子放屁有什么区别? 上面还只是一个简单的示例,实际审查情况远比你想象的糟糕。...我就见过同事写出这样的代码,是赶时间呢,还是真的不会设计模式,一个构造函数参数能写这么多,且不说魔法值,这么长,看一眼都觉得头大。

59350

【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(重构篇)

这个快捷键还是比较常用的,典型的应用场景: 将魔法值抽取成有语义的变量 这里的2和2+3语义就不明确,属于魔法值需要尽量避免的。...该快捷键就非常非常常用喽,毕竟一般来讲魔法值大都可以改为常量来描述,语义更加明确。...变量(本地变量、成员变量、静态全局变量)重命名 方法重命名 类重命名 … 结合Java强类型语言的特性,重命名在Java里非常非常非常好用。 重命名文件,也是这个快捷键。...由于Java文件一般和class类名一样,因此重命名文件对应的类名也会随着变化。...✍总结 本文继续介绍了IDEA 重构相关的快捷键,结合Java强类型语言的特性,正确的使用IDEA提供的重构功能,能够控制风险,大大降低重构的“难度”呀。

68540
领券