JavaEE 中DEBUG模式的设计
【摘要】
JavaEE 中DEBUG模式的设计
通过DEBUG模式我们可以快速的切换线上和线下的环境
public class Final {
// DEBUG模式,该字段必须放在前面,因为都是静态的...
JavaEE 中DEBUG模式的设计
通过DEBUG模式我们可以快速的切换线上和线下的环境
public class Final {
// DEBUG模式,该字段必须放在前面,因为都是静态的,所以JVM会按照代码顺序加载
// DEBUG模式的设计依赖此字段,该字段放到后面会报错
private static boolean DEBUG;
// 包访问权限的静态字段
// 把该值访问权限限制在包内,提供给Const使用
static String HOST_NAME;
static int PASSWORD;
// 静态加载块,在类加载的时候就加载数据
static {
// 通过方法来实现控制的编程思想会让你的代码更具健壮性
// 实现封装性的效果也更好
// 代码的易读性和维护性也更好
// 切换DEBUG模式只需要调用disableDebug或者enableDebug方法即可
disableDebug();
// DEBUG控制的实现
if (DEBUG) {
HOST_NAME = "admintest";
PASSWORD = 123456;
} else {
HOST_NAME = "admin";
PASSWORD = 20170720;
}
}
// 开启DEBUG模式
private static void enableDebug() {
DEBUG = true;
}
// 关闭DEBUG模式
private static void disableDebug() {
DEBUG = false;
}
// 私有的构造方法,禁止常量构造器被外部创建
private Final(){}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
public enum Const {
// 使用枚举作为常量池,来解决Final类不能使用final的问题
// 因为枚举本身就是常量形式
// 而且他是绝对线程安全的
HOST_NAME(Final.HOST_NAME),
PASSWORD(Final.PASSWORD);
private Object value;
// 私有的构造方法,禁止常量池被外部创建
private Const(final Object value) {
this.value = value;
}
// 返回object,
public Object getValue() {
return value;
}
// 返回int,
public int getInt() {
return (int)value;
}
// 返回其它类型
// ...
// enum类型的类会默认继承Enum类
// 而Enum的toString方法会返回构造函数的name参数,所以此处不覆写toString方法
public String getString() {
return value.toString();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
public class Use {
public static void main(String[] args) {
String s = Const.HOST_NAME.getString();
int i = Const.PASSWORD.getInt();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
文章来源: wretchant.blog.csdn.net,作者:简简单单OnlineZuozuo,版权归原作者所有,如需转载,请联系作者。
原文链接:wretchant.blog.csdn.net/article/details/75577309
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)