单例模式

前言

设计模式的重要性,不言而喻,但是我们平时在做android开发的时候却很少关注,这其中最重要的一个原因可能是开发中是以实现功能为主,然而一般的项目很少重构,都是一次性的,除非是产品平台级别的项目,才会有重构这一环节,重构中最重要的,最核心的一个环节的就是使用设计模式将原先的代码进行整理。那么我这篇博文跟大家讲解一下开发中的单例模式。

单例模式的分类

  • 饿汉式
  • 懒汉式

对象初始化时机

饿汉式是当类加载器加载类初始化的时候将对象初始化。(也称为预加载)

懒汉式是当需要对象的时候进行初始化。(与称为延迟加载)

应用场景

  • 上下文管理器
  • 全局对象管理器

单例模式在Android系统中的应用

Android 应用启动的时候每个进程都会创建一个Application对象,这个对象并且是全局唯一的。通过这个对象我们可以访问很多资源。比如字符串,颜色等等

单例模式在我们自己程序中的应用

一般的应用都有个人中心这个模块,我们将这个模块进行抽象,其实就是一个UserManager,这个就是一个用户上下文管理器,个人中心的所有操作都有该对象发起。下面就以不同形式来的单例模式来实现UserManager

懒汉式实现

public class UserManager{

private static volatile UserManager sInstance = null;
private UserManager(){
  // init
}

public static UserManager getInstance(){
    if(sInstance==null){
        synchronized(UserManager.class){
            if(sInstance==null){
                sInstance = new UserManager();
            }
        }
    }
    return sInstance;
}

}

饿汉式实现

public class UserManager{

private static final UserManager INSTANCE = new UserManager();

private UserManager(){

}

}

那这两种模式分别什么时候使用了,我个人认为,作为移动端开发,最好使用懒汉式加载,毕竟移动设备分配给每个app的内存是有限的,并且基于类加载器的原理,在类加载到内存的时候,类中的静态成员将自动初始化。那么饿汉式模式下,加载类中的一个静态变量,导致对象的初始化,显然移动端不太合适。

总结

单例模式是开发中最常用的设计模式,也是相对其他设计模式,最简单的,代码不难理解,下篇博文讲解代理模式在Android系统的应用。今天就写到这里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值