- 浏览: 171618 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (87)
- Android (7)
- J2EE (34)
- JavaScript (6)
- CSS (1)
- Scala (0)
- WEB (5)
- Ruby (1)
- J2EE Netbeans JDK (1)
- Maven (2)
- AndroidMenuTest (0)
- ExtJS (1)
- MyBatis (4)
- iBatis (3)
- Quartz (1)
- JavaABC (3)
- HTML (1)
- JQuery (2)
- mysql (3)
- Linux (2)
- windows (1)
- ant (2)
- jboss (1)
- eclipse (1)
- junit (1)
- nginx (1)
- Google (0)
- git (2)
- python (1)
- kafka (1)
- sqlserver (1)
- jdk8+ (1)
参考http://www.importnew.com/16700.html
我们可以将类设置为final,这样就不能扩展。甚至,我们可以将构造器设置为私有的,以防止对这个类实例化,这样就永远不会破坏约定。此外,如果一个特殊的常量在同一个类中被多次使用,则开发者可以使用静态引入。
所有对于常量类,比较好的设计应该是:
静态引入的例子:
这个设计问题也称为接口常量反模式(Constant Interface Anti-pattern)。
我们可以将类设置为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)。
发表评论
-
日志过滤小工具
2020-01-06 20:15 3821.从全量日志中截断部 ... -
GC参考手册
2017-11-09 14:12 486英文版原文:GC Tuning: In Practice 垃圾 ... -
IDENTITY_INSERT 设置为 OFF 时无法指定插入自增ID
2017-02-15 16:10 625IDENTITY_INSERT 设置为 OFF 时,无法指定I ... -
运行时Exception:Wrong return type in function
2015-11-17 21:31 1488D:\Soft\jdk1.7.0_79\bin\java ... -
java Socket通信小栗子
2015-09-14 09:25 568server端: package com.test.soc ... -
MyBatis 自动生成xml文件
2015-03-12 11:22 3701package com.test.mybatis; ... -
Java mail test
2015-02-12 11:03 1222mail局域网Exchange服务器测试代码,仅限发送到dom ... -
Java Concurrency / Multithreading Tutorial
2014-10-28 09:35 672Java Concurrency / Multithreadi ... -
Comparison method violates its general contract!
2014-10-22 17:24 919jdk1.6升级到1.7后Comparator有null的参数 ... -
JDK1.7 不兼容compare方法
2014-10-21 16:20 729java.lang.IllegalArgumentExcept ... -
Unknown Source的出现及解决
2014-06-18 10:03 880http://www.2cto.com/kf/201103/8 ... -
ApplicationDeadlockException
2014-06-16 15:39 755参考 : How to avoid huge transact ... -
Java Date相关处理
2014-02-26 14:35 5691.获取UTC时间: Calendar c ... -
Error listenerStart
2013-12-11 19:25 688INFO: Deploying web applicati ... -
Error configuring application listener of class org.springframework.web.context.
2013-12-07 18:54 38134如果Eclipse的BuildPath里面不缺jar包并且在 ... -
iReport字体报错“JRFontNotFoundException”
2013-10-11 11:08 12663net.sf.jasperreports.engine.uti ... -
Eclipse里Jboss的配置
2013-07-15 17:41 9231.\WorkSpace\.metadata\.plugins ... -
Ant安装使用入门
2013-07-04 14:03 535下载Ant之后,增加环境变量1.ANT_HOME=xx/xx/ ... -
javaSystem获取系统信息
2013-03-27 16:30 778public static void main(Strin ... -
设计模式学习笔记
2013-03-22 18:01 810简单工厂,策略模式,单一职责,开放封闭,依赖倒转 装饰模式,代 ...
相关推荐
Java中的常量如何避免反模式Java开发Java经验技巧共3页.pdf.zip
主要介绍了Java中的常量避免反模式的方法,需要的朋友可以参考下
Java常量接口反模式 这篇文章最初发布在我的博客上: : 您如何在Java中定义和使用常量? Internet上的大多数建议具有以下意见: 为类中的常量声明public static final 不要将接口用于常量 定义常量的最常见方法...
在Java程序设计过程中,对应日期和时间的格式化,还有一个简单的格式化方式,就是java.text.SimpleDateFormat,该类中用字符串指定日期和时间的格式,字符串中的字符称为模式字符,模式字符区分大小写。常见的模式...
JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的序列化和反序列化练习 163 JAVA.IO包相关流对象...
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技术两种核心运行...
实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见问题 找不到类文件 6 常见问题 语法错误 7 第2章 Java基础语法 9 实例4 变量和常量 9 实例5 基本数据类型转换 10 实例6 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九...
进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,丢弃高位 宣告变量名称的同时,加上“final”关键词来限定,这个...
这是一个maven插件,可从远程GraphQL API生成TYPE SAFE Java代码,因此您可以在一个生成的源代码中使用所有API方法和类型,并轻松构建和执行对GQL服务器的查询/突变。 它产生: 类型-对象模型,包括字段常量 ...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17...
实例13 Java中的进制与移位运算符 22 第3章 条件控制语句(教学视频:75分钟) 26 3.1 if控制语句 26 实例14 判断输入的年份是否为闰年 26 实例15 抽奖活动 27 3.2 for语句 28 实例16 小九九乘法表 28 实例17 如何列...
【基础】Java 中定义常量的几种方法 25 【基础】什么时候使用字节流?什么时候用字符流? 26 【基础】GBK与UTF-8的区别 26 【基础】static、final、const的区别 26 final: 26 static: 27 【基础】如何实现对象克隆?...
Java程序.............................................................................................6 1.3.1 Java程序的结构 ...........................................................................
功能包括反汇编,汇编,反编译,制图和脚本编写,以及数百种其他功能。 Ghidra支持多种处理器指令集和可执行格式,并且可以在用户交互和自动模式下运行。 用户还可以使用Java或Python开发自己的Ghidra插件组件和/或...
02.Scala中的常量 03.Scala中的变量 04.字符串的定义 05.惰性赋值 06.标识符 07.数据类型 08.类型转换 09.值类型和String类型之间的相互转换 10.键盘录入功能 11.案例_打招呼 第三章 运算符 001.导学 01.算术运算符 ...