【转】可别在代码中写那么多魔法值了,脑壳疼!

0.前期提要

闲逛至老哥博客文章 可别在代码中写那么多魔法值了,脑壳疼!, 遂模仿,学习一下markdown语法写博客

1. 前言

重构老代码中遇到了不少类似下面这种写法:

    public void attend(String value) {
        if ("0".equals(value)) {
            //todo 
        } else if ("1".equals(value)) {
            //todo
        } else {
            //todo 
        }
    }

脑壳疼!从Java语法上无懈可击,但是从业务上却让人无法理解其中01的含义它们统称为魔法值 。对于上面的代码我们往往需要通过上下文推断出来逻辑,如果是非常复杂的业务或者10年前的代码那就更惨了,搞不好文档也没有。为了可读性,所以我们要尽量避免出现魔法值。今天就来讲几种避免魔法值的操作。

2. 避免魔法值的一些操作

一般魔法值都是不经常变动的。对于魔法值的处理要结合业务和作用域

2.1 静态常量

如果该值的作用域在一个类中或者同一个包下,一般可以使用静态常量来解决。

    private static final String FEMALE = "0";
    private static final String MALE = "1";
    public void attend(String value) {
        if (FEMALE.equals(value)) {
            //todo
        } else if (MALE.equals(value)) {
            //todo
        } else {
            //todo
        }
    }

猜你喜欢

转载自www.cnblogs.com/kikyoqiang/p/12813998.html