Android 工具类中何时选择单例模式或静态方法

单例模式:

public class SetUtil {
    private static SetUtil instance = null;
    public static SetUtil getInstance() {
        if (instance == null) {
            synchronized (SetUtil.class) {
                if (instance == null) {
                    instance = new SetUtil();
                }
            }
        }
        return instance;
    }

    
    public void saveFilesOrFoldersName(String value, String key) {
        edit = sp.edit();
        this.edit.putString(key, value);
        this.edit.commit();
    }

}

静态方法 无需实例化

public class SetUtil {

public static void saveFilesOrFoldersName(String value, String key) {
        edit = sp.edit();
        this.edit.putString(key, value);
        this.edit.commit();
    }

}

    区别分析:

      单例模式使用方法:SetUtil.getInstance().saveFilesOrFoldersName("value","key");

      静态使用方法:SetUtil.saveFilesOrFoldersName("value","key");

   内存消耗区别:

     单例模式:在堆中创建了实例加上静态变量的引用,只要app不销毁就会常驻内存。

     静态方法:在程序启动时就分配了静态区域的内存,也会常驻内存。

   效率方面:

     静态方法效率略高一些,静态方法是可以被共享的,可直接调用。

    如何选择:

静态方法适合去完成一个独立的封闭的功能,所以如果方法中不需要维持一些外部的状态值,
可以用静态方法的方式,否则做成单例的方式。除了外部状态值的这种情况,
个人认为这两种方式均可,无伤大雅。

 外部状态值:

例如在工具类里面有一些成员变量,假如有个boolean值,你的方法中需要判断或改变这个值,这种情况就是有外部状态的情况。

   参考:Android 工具类的两种写法---单例模式与静态方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值