java 工具类 单例_工具类用单例模式还是静态方法

本文探讨了Java工具类中使用单例模式和静态方法的优缺点。在有配置信息的情况下,单例模式更便于扩展,如创建多个不同配置的实例。静态类则更简单易用,但不支持面向对象的特性。作者建议无配置信息的工具类使用静态类,有配置的工具类采用单例模式。
摘要由CSDN通过智能技术生成

上一篇blog中将工具类写成了静态类(所有的方法都是静态方法),今天发现了这种方式的弊端。且听我慢慢道来:

今天需要重构一个实习生的代码,逻辑很简单,消费kafka,提取需要的内容写入ssdb,他将配置信息直接写到了项目中,而我们需要区分本地、测试、生产环境,不现实,这就是重构的原因。

这就要求我必须封装kafka消费、jedis(ssdb兼容jedis)读写工具类。本来打算照着前几天的做,但是想着参照参照大牛的代码,学习学习提升自己。

打开大牛的代码,发现所有类似的工具类都是非静态的,而是spring注入(默认是单例模式)那么问题来了:工具类用单例模式还是静态类好?

于是又是上网搜,最后通过知乎、博客等途径,主要了解了一下区别:

说静态类好的:

静态类不用引用就能调用,而单例需要有对象的引用,因此节约资源(我觉得这个影响微乎其微,可以忽略)

静态类方便,随处可用;而单例必须有引用,需要注入或者new(是有点麻烦,我上次写静态类也是因为这个原因)

说单例好的:

单例模式的类是普通的类,它具有面向对象的特性,方便扩展

对于有配置的工具类,可以轻松的创建多个不同配置的单例对象(想起我主导的另一个项目就存在5-6个redis数据源,如果使用静态类就是灾难)

因此,我得出以下结论:

如果没有配置信息的工具类,当然是静态类好,随处调用,不需引用爽得不要不要的。比如Math.abs(),如

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值