关于魔法值

1、魔法值的概念   ----具体的数字和字符

       常量在代码中具有穿透性,使用甚广。如果没有一个恰当的命名,就会给代码阅读带来沉重的负担,甚至影响对主干逻辑的理解。首当其冲的问题就是到处使用魔法值。

      魔法值即"共识层面"上的常量,直接以具体的数值或者字符出现在代码中。这些不知所云的魔法值极大地影响了代码的可读性和可维护性

2、解决方案

     2.1、静态常量--static final 定义的

    2.2、枚举类---枚举类适合所有常量已经确定,后期几乎固定不变,这样才符合枚举类的宗旨

3、魔法值避免

即使类内常量和局部常量当前只使用一次,也需要赋予一个有意义的名称,目的有两个:第一,望文知义,方便理解;第二,后期多次使用时能保证值出同源。因此,无论如何都不允许任何魔法值直接出现在代码中,避免魔法值随意使用导致取值不一致,特别是对于字符串常量来说,应该避免没有预先定义,就直接使用魔法值。 

某些公认的字面常量是不需要预先定义的,如for(int i=;..)这里的0是可以直接使用的。true和false也可以直接使用,但是如果具备了特殊的含义,就必须定义出有意义的常量名称,比如在TreeMap源码中,表示红黑树节点颜色的true和false就被定义成为类内常量,以方便理

posted @ 2019-10-22 19:57  Gentleman-cx  阅读(731)  评论(0)    收藏  举报