昆明java培训
达内昆明广州春城路

18487146383

热门课程

常量引用的反模式

  • 时间:2015-12-03
  • 发布:昆明Java培训
  • 来源:达内新闻

昆明java培训机构有学员提出:java开发中,我们需要常量文件,来存储共享常量以供引用,设计应用中也是如此;这也就需要独立的文件来存储这些静态公共常量。这时,可以用接口或类来实现:

现在昆明java培训老师为大家详细讲解:

1.使用接口的方法:

package one;

public interface Constants {

String NAME="name1";

int MAX_VAL=25;

}

package two;

public class Constants {

public static final String NAME="name1";

public static final int MAX_VAL=25;

}

昆明java培训机构

昆明java培训技术专家推荐使用接口的方法,接口可以自动将成员变量设置为静态、不可变的、从而防止出现错误地添加新的常量的情况。优点在于使代码更加简单清晰。

使用接口的方法意味着更少的字节,不需担心类提供的额外特征,因此加载更快、维护成本更低。

接口的方式对保存常量很有帮助,但它是典型的反模式,所以对于后期扩展留下一个漏洞。

2.使用类的方法

java开发者在类中写通过接口对常量的引用。例如:

packagename.Constant.CONSTANT_NAME

为了清理该段代码并且实现该接口,无需写“packagename.Constants”,所有的常量可以直接访问。

这种接口实现的方式,会导致所有的常量变成“契约”的一部分,因此增加了不必要的常量。后果就是动摇基础,造成严重混乱。

昆明java培训专家推荐一种方法,将类设置为final,使其不能扩展。并且将构造器设置为私有的,防止该类的实例化。对于某个特殊的常量在同一个类中经常使用,java开发者可以使用静态引入的方法。

package three;

//make the class non-extendable by adding final 增加final关键字来避免继承

public final class Constants {

//Hide the constructor 隐藏构造器

private Constants(){}

public static String NAME="name";

}

静态引入:

import static three.Constants.NAME;

public class UseConstants {

public static void main(String[] args) {

System.out.println("the value of constants is"+NAME);

}

}

昆明java培训小编觉得我们在使用的时候先考虑是否需要引用这样的模式,后期结果会怎么样都还是需要不断的知识与实践的积累。

上一篇:抽象类与接口之间的差异
下一篇:五类人群适合前端开发,有你嘛?

达内Java开发学员易帅哥月薪7k入职科蓝软件

达内java程序员掌握技术就掌握铁饭碗

Java面试3大经验,线程间协作原理

iPhone摄像头发展史一步一个脚印

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货