常量的优雅分类
来源:互联网 发布:手机mac修改器怎么用 编辑:程序博客网 时间:2024/05/22 11:59
常量分类
小伙伴们在写项目的时候肯定都有个类似Constants.java这样用来存储的常量的类吧。那你们是不是也和下面一样存储常量呢?
public class Constants { //theme type public static final String BLUE_THEME="BLUE"; public static final String GRAY_THEME="GRAY"; public static final String RED_THEME="RED"; //db config public static final String DB_NAME="user.db"; public static final String DB_PATH="/sdcard/"; public static final String TABLE_NAME="user"; //...}
很明显的可以看出,上面的代码中的常量可以分为theme type和db config两大块。不能说上面的代码有错,可是一旦常量多起来的话就会造成常量的难管理。
前段时间有个同学发了一段代码给我看,大致如下:
public class Constants { public interface THEME_TYPE { String BLUE_THEME = "BLUE"; String GRAY_THEME = "GRAY"; String RED_THEME = "RED"; } public interface DB_CONFIG { String DB_NAME = "user.db"; String DB_PATH = "/sdcard/"; String TABLE_NAME = "user"; } //...}
对比下二者的使用方法:
//第一种theme.setTheme(Constanst.BLUE_THEME);//第二种theme.setTheme(Constanst.THEME_TYPE.BLUE_THEME);
明显的看出后者实现了对常量的分组效果,管理起来很方便,而且代码的逼格提高了一个档次。
Annotation Support Lib
有时候我们想限制用户的set操作,这时候可以使用谷歌的annotation support lib中的类型定义注解,代码如下:
@Retention(RetentionPolicy.SOURCE)@IntDef({GenderAnn.FEMALE,GenderAnn.MALE})public @interface GenderAnn { int MALE=1; int FEMALE=0;}
使用方法:
public void setGender(@GenderAnn int pGender);
这样在调用setGender方法的时候只能设置GenderAnn.MALE和GenderAnn.FEMALE这2个值。
当然这里的2个常量可以参照之前那样写到Constants类中,但是不推荐,直接写在这个注解中岂不直观?
最后
建议多看别人的优质代码,看到高质量的的代码写法记得学以致用和分享~
阅读全文
0 0
- 常量的优雅分类
- enum-------优雅的定义常量
- 如何优雅的创建nodejs共享常量
- 【C++】定义全局常量的一个优雅的方案
- 优雅的长笛
- 欧洲人的优雅
- 优雅的javaScript代码
- 关于“优雅”的设计
- 残缺的优雅
- 优雅的离别
- 优雅的closesocket
- 优雅的LinQ
- 什么是优雅的代码?
- 真正的优雅
- 优雅的python
- 优雅的bitcask
- 优雅的全排列
- 优雅的Bitcask
- 斐波那契
- ArrayList与LinkedList的区别
- 在数组中指定位置添加和删除元素
- 2012 浙大机试 Hello World for U
- 【opencv】LBP(局部二进制模式)算法的实现
- 常量的优雅分类
- 基于Swift的iOS应用程序开发:“属性观察器”简介
- Java实践(四)---程序设计模式
- Kafka+Storm+HBase项目Demo(6)--前端HTTP长连接实现
- 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
- jquery获取当前的节点
- bzoj 3524 主席树 解题报告
- ural1297Palindrome (后缀数组+lcp)
- 【codevs 3186】队列练习2