码迷,mamicode.com
首页 > 编程语言 > 详细

java使用单例与使用static方法的对于和个人理解

时间:2019-11-30 13:42:26      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:ring   boot   代理   ati   工具   重构   静态   引入   测试   

最近在重构项目中的老模块,打算引入spring boot对原有项目自己封装的依赖注入模块进行替换。项目中存在大量的工具类,大都是使用static方法编写的,比如时间工具类用于格式化日期,编码工具类用于编码解码。研究了下是否有必要对这些常量方法的类进行单例重构。

首先要说明的是,两种方式都是可以实现功能的,只在一些特殊的场景会有些区别。除非比较感兴趣,一般是没必要太深究

区别和特点:

单例:有实例,有状态

静态方法:无实例,无状态,纯函数

静态方法实现方式的优点是突出了一个简单粗暴,不实例对象,并且由于静态方法是在编译期静态绑定的,性能会有一点提升。对于大部分业务无关的工具类,确实比较适合这种场景。

缺点也很明显,由于不实例化对象,也就不遵守面向对象的设计。什么高内聚低耦合,单元测试,实现替换,AOP代理等等这些面向对象的优势,就都没有了,相较与面向对象会更加难以应对变更。

想用AOP的话,还是使用单例吧

java使用单例与使用static方法的对于和个人理解

标签:ring   boot   代理   ati   工具   重构   静态   引入   测试   

原文地址:https://www.cnblogs.com/feng-gamer/p/11962028.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!