首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

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

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

18020

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

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

24540

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

最主要的一个原因是它能解决魔法值问题。特别是代码中有switch、if和其它重复多次的变量值,通常这些值都可以定义为常量。魔法值太多不利于代码的维护。...魔法值代码例子如下: 12 String key = "Id#taobao_" + tradeId;cache.put(key, value); 二、常量与配置文件的区别?...对于魔法值通常建议使用常量进行管理,而像mysql、memcache、elasticesearch、tomcat、redis、mongodb、对象存储服务器(类似文件管理这样的)等通常使用配置文件进行管理...【强制】不允许任何魔法值(即未经定义的常量)直接出现在代码中。 2.【强制】long 或者 Long 初始赋值时,使用大写的 L,不能是小写的 l,小写容易跟数字 1 混 淆,造成误解。 3.

1.2K01

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

60;           //攻击力      private int JQ1=5300;          //金币      private int MP1=160;           //魔法值...造成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...*/ private int WM2=35; /*W技能消耗魔法值*/ private int EM2=40; /*E技能消耗魔法值*/ private int RM2=60; /*R

40310

用真实脑电波提高魔法伤害!硬核玩家改造《上古卷轴V》,脑机接口控制魔法施放

△成为真正的抓根宝 Mod会接管原版游戏中的魔法系统,你的魔法值现在根据脑电波数据决定。 抬起手来看一下蓝条,如果注意力不集中,魔法值会下降,法术打出去的伤害也随之下降。...需要用深呼吸等手段平静下来,让魔法值上升,如果升满的话法术伤害直接翻倍。 是不是有种真正当法师的感觉? 虽然Mod功能还很简单,不过更大的意义是展示了全新的可能性。...剧烈运动之后抬手一看,魔法值果然归零了。按他的设计,此时依旧可以释放魔法,只不过伤害也是0。 如果此时遇到敌人必须想办法集中注意力,作者自己描述这感觉就像冥想一样。...如果敌人就在眼前,情况紧急来不及回复魔法值了怎么办? 那就拔出菜刀上去砍吧,也算还原出一种游戏里法师害怕被敌人近身的设定吧。...为了辅助校准,最新版Mod中增加了一项头部运动检测,如果来回转头到处看魔法值也会下降,影响力度占比20%。 因为作者自己也是游戏玩家,所以最关心的是游戏沉浸感,而不仅仅是脑电波检测这项技术。

34220

数据分析入门系列教程-EM实战-划分LOL英雄

以便于后面的分析使用 with open('all_hero_init_attr.csv', 'w', encoding='utf-8') as f: f.write('英雄名字,生命值,生命值回复,魔法值...,魔法值回复,移动速度,攻击范围,攻击力,' '攻击速度,护甲,魔法抗性\n') for i in detail_list: try:...pd.read_csv('all_hero_init_attr.csv', encoding='gb18030') 查看关联特征 feature = ['英雄名字','生命值','生命值回复','魔法值...','魔法值回复','移动速度','攻击范围','攻击力', '攻击速度','护甲','魔法抗性'] data_init = data[feature] corr = data_init...对于关联关系比较强的特征,我们只保留一个,所以可以得到如下的简化特征集 features_remain = ['生命值','生命值回复','魔法值','魔法值回复','移动速度','攻击范围','攻击力

50710

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

7、魔法值的真谛 曾经检查代码时,发现代码中很多魔法值,叫同事要定义成公共常量,结果来了这么一段: private final static int ZERO = 0; private final static...看到上面的常量定义,我真想打人,虽然魔法值是没了,但又定义了一些没有意义的常量,完全没有理解修改魔法值的真谛,这和脱裤子放屁有什么区别? 上面还只是一个简单的示例,实际审查情况远比你想象的糟糕。...我就见过同事写出这样的代码,是赶时间呢,还是真的不会设计模式,一个构造函数参数能写这么多,且不说魔法值,这么长,看一眼都觉得头大。

59150
领券