`

Java中的常量:如何避免反模式

    博客分类:
  • J2EE
阅读更多
参考http://www.importnew.com/16700.html

我们可以将类设置为final,这样就不能扩展。甚至,我们可以将构造器设置为私有的,以防止对这个类实例化,这样就永远不会破坏约定。此外,如果一个特殊的常量在同一个类中被多次使用,则开发者可以使用静态引入。

所有对于常量类,比较好的设计应该是:

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);
  }
}

这个设计问题也称为接口常量反模式(Constant Interface Anti-pattern)。
分享到:
评论

相关推荐

    Java中的常量如何避免反模式Java开发Java经验技巧

    Java中的常量如何避免反模式Java开发Java经验技巧共3页.pdf.zip

    Java中的常量避免反模式的方法

    主要介绍了Java中的常量避免反模式的方法,需要的朋友可以参考下

    JavaConstants:测试Java中常量的各种定义和使用方法

    Java常量接口反模式 这篇文章最初发布在我的博客上: : 您如何在Java中定义和使用常量? Internet上的大多数建议具有以下意见: 为类中的常量声明public static final 不要将接口用于常量 定义常量的最常见方法...

    java常用工具类的使用

    在Java程序设计过程中,对应日期和时间的格式化,还有一个简单的格式化方式,就是java.text.SimpleDateFormat,该类中用字符串指定日期和时间的格式,字符串中的字符称为模式字符,模式字符区分大小写。常见的模式...

    JAVA基础课程讲义

    JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象...

    java基础案例与开发详解案例源码全

    2.3.1 Java程序中的类型19 2.3.2 Java程序开发三步曲21 2.3.3 开发Java第一个程序21 2.3.4 Java代码中的注释23 2.3.5 常见错误解析24 2.4 Java类库组织结构和文档27 2.5 Java虚拟机简介28 2.6 Java技术两种核心运行...

    JAVA 范例大全 光盘 资源

    实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...

    java范例开发大全源代码

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 ...

    java范例开发大全

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...

    Java范例开发大全 (源程序)

     实例13 Java中的进制与移位运算符 22  第3章 条件控制语句(教学视频:75分钟) 26  3.1 if控制语句 26  实例14 判断输入的年份是否为闰年 26  实例15 抽奖活动 27  3.2 for语句 28  实例16 小九九...

    整理后java开发全套达内学习笔记(含练习)

    进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...

    maven-graphql-java-codegen-plugin:一个从远程GraphQL服务生成GraphQL模式的插件

    这是一个maven插件,可从远程GraphQL API生成TYPE SAFE Java代码,因此您可以在一个生成的源代码中使用所有API方法和类型,并轻松构建和执行对GQL服务器的查询/突变。 它产生: 类型-对象模型,包括字段常量 ...

    Java范例开发大全(全书源程序)

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17...

    java范例开发大全(pdf&源码)

    实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【基础】Java 中定义常量的几种方法 25 【基础】什么时候使用字节流?什么时候用字符流? 26 【基础】GBK与UTF-8的区别 26 【基础】static、final、const的区别 26 final: 26 static: 27 【基础】如何实现对象克隆?...

    JAVA程序设计教程

    Java程序.............................................................................................6 1.3.1 Java程序的结构 ...........................................................................

    awesome-ghidra:精选的Ghidra材料清单

    功能包括反汇编,汇编,反编译,制图和脚本编写,以及数百种其他功能。 Ghidra支持多种处理器指令集和可执行格式,并且可以在用户交互和自动模式下运行。 用户还可以使用Java或Python开发自己的Ghidra插件组件和/或...

    scala从入门到精通技术教学视频

    02.Scala中的常量 03.Scala中的变量 04.字符串的定义 05.惰性赋值 06.标识符 07.数据类型 08.类型转换 09.值类型和String类型之间的相互转换 10.键盘录入功能 11.案例_打招呼 第三章 运算符 001.导学 01.算术运算符 ...

Global site tag (gtag.js) - Google Analytics