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

关于工具类的设计,作者探讨了使用单例模式和静态方法的优缺点。静态类易于调用,但不便扩展;单例模式保持面向对象特性,适合有配置信息的工具类。文中通过实例说明,当需要管理多个数据源时,单例模式更为合适。结论建议:无配置信息的工具类用静态类,有配置信息的推荐单例模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

说静态类好的:

  1. 静态类不用引用就能调用,而单例需要有对象的引用,因此节约资源(我觉得这个影响微乎其微,可以忽略)
  2. 静态类方便,随处可用;而单例必须有引用,需要注入或者new(是有点麻烦,我上次写静态类也是因为这个原因)

说单例好的:

  1. 单例模式的类是普通的类,它具有面向对象的特性,方便扩展
  2. 对于有配置的工具类,可以轻松的创建多个不同配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值