001滥用全局变量和全局方法的设计

在面向对象编程中,常见的全局变量有单例类对象、静态成员变量、常量等,常见的全局方法有静态方法。

单例类对象在全局代码中只有一份,所以,它相当于一个全局变量。
静态成员变量归属于类上的数据,被所有的实例化对象所共享,也相当于一定程度上的全局变量。
而常量是一种非常常见的全局变量,比如一些代码中的配置参数,一般都设置为常量,放到一个 Constants 类中。
静态方法一般用来操作静态变量或者外部数据。 常用的各种 Utils 类,里面的方法一般都会定义成静态方法,可以在不用创建对象的情况下,直接拿来使用。

Constants 类

public class Constants {
public static final String MYSQL_ADDR_KEY = “mysql_addr”;
public static final String MYSQL_DB_NAME_KEY = “db_name”;
public static final String MYSQL_USERNAME_KEY = “mysql_username”;
public static final String MYSQL_PASSWORD_KEY = “mysql_password”;

public static final String REDIS_DEFAULT_ADDR = “192.168.7.2:7234”;
public static final int REDIS_DEFAULT_MAX_TOTAL = 50;
public static final int REDIS_DEFAULT_MAX_IDLE = 50;
public static final int REDIS_DEFAULT_MIN_IDLE = 20;
public static final String REDIS_DEFAULT_KEY_PREFIX = “rt:”;

// …省略更多的常量定义…
}

what

一般把程序中所有用到的常量,都集中放到constant类中,不过,定义一个大而全的constant类不是一个好的设计思路
1、影响代码可维护性,每次修改都要修改这个类,增加代码冲突,查找费时,编译时间增加
2、影响代码可复用性 ,其他项目复用本项目的类,需要引入其他不需要的依赖
how

一、将constant拆分为多个功能更加单一的类,比如mysqlConstant、redisConstant
二、哪个类用到了,放在哪个类中,比如redisConfig需要引用,直接放到这个类中
why

提高可维护性
提高可复用性

Utils 类

类比 Constants 类的设计,我们设计 Utils 类的时候,最好也能细化一下,针对不同的功能,设计不同的 Utils 类,比如 FileUtils、IOUtils、StringUtils、UrlUtils 等,不要设计一个过于大而全的 Utils 类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值