2 szw sh szw_sh 于 2016.03.31 13:36 提问

Android中工具类的设计

两种方案:
1、工具类的方法设置为静态方法
2、工具类设置成单例模式,获取实例调用
哪一种方案相对好一点呢?求大神指点

7个回答

u012215068
u012215068   2016.04.01 15:36
已采纳

单例模式,实例是application是同级的,只要在application销毁的情况下才会销毁,再者如果你的单例如果持有一些context的引用的话,会导致该context
无法释放,有内存泄露的风险。反之静态方法会比单例好很多!提醒你,人家回答你,要先说谢谢,不要什么都不说就直接追问,最基本的尊重还是要有的

szw_sh
szw_sh 好的,谢谢呀,以后我会注意的
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.03.31 13:42

Android shell工具类
Android工具类——LoadingUtils
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

NullNameError
NullNameError   2016.03.31 13:52

如果你只想要调用下方法,不涉及类的成员变量,那干嘛要用单例?

szw_sh
szw_sh 在项目中使用的比较频繁,如果不使用单例的话,频繁的创建对象会造成不必要的内存开销
一年多之前 回复
sl_18500
sl_18500   2016.03.31 15:43

1、工具类的方法设置为静态方法

sl_18500
sl_18500 你要创建实例干嘛,浪费栈内存么
一年多之前 回复
szw_sh
szw_sh 静态方法比起设置成单例的优势在哪呢(除了可以快速的访问)?
一年多之前 回复
sl_18500
sl_18500   2016.03.31 15:43

1、工具类的方法设置为静态方法

shakdy
shakdy   2016.03.31 15:51

第一个方法(静态方法)更好

szw_sh
szw_sh 比起单例,那是否占用的内存空间有点多呢?
一年多之前 回复
szw_sh
szw_sh   2016.04.01 17:29

设置为静态方法更好:如果设置成单例模式,它的生命周期也是整个app的生命周期,而且一直占用着堆内存;也就是说设置成单例模式和设置成静态方法生命周期相同,单例一直占用堆内存,静态一直占用静态存储区,在内存消耗上差不多,但静态方法的话,访问速度更快且使用更加便利

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!