美文网首页Android开发知识集
Android中的单例模式详解

Android中的单例模式详解

作者: 专属守护 | 来源:发表于2017-03-29 20:20 被阅读43次

    定义:

    单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

    单例模式其他方式:

    1、懒汉模式:声明一个静态对象,并且在用户第一次调用getInstance时进行初始化,在getInstance()方法中添加了synchronized关键字,实现该方法的同步管理,特别是在多线程情况下,防止重复初始化。

    该模式优点:单例只有在使用时才被实例化,节省资源;缺点:第一次加载实例化,反应慢,最大问题是每次调用getInstance()方法都需要同步,造成不必要的同步开销。

    2、Double Check Lock(DCL双重检查锁定)

    DCL方式实现单例模式优点是,既能够在需要时才初始化单例,又能保证线程安全,并且单例对象初始化后调用getInstance()方法不进行同步锁。

    该实现方式最大的优点在于getInstance()方法上,针对于instance对象进行了两次验证是否为NULL;这两种判断主要做了三件事情:

    (1)给Singleton实例对象分配内存(2)调用Singleton的构造函数,初始化成员字段(3)将instance对象指向分配的内存空间;

    3、静态内部类单例模式

    在Singleton类中声明一个静态内部类,静态类里实现单例对象的实例化,这样既可以确保线程安全,也可保证单例对象唯一性,同时延迟单例的实例化,这是比较推荐的一种方式。

    单例模式优点:减少内存开支,避免资源浪费,常住内存,实现全局数据管理和共享;

    单例模式缺点:扩展难,如果在Android中持有Context,容易造成内存泄漏,最好使用Application Context;

    单例模式的优势

    1、单例模式只有一个实例,减少了内存开销。

    2、单例模式可以避免资源的多重占用(避免对同一个文件同时操作)

    3、可以再系统设置全局的访问点,优化和共享资源访问。

    相关文章

      网友评论

        本文标题:Android中的单例模式详解

        本文链接:https://www.haomeiwen.com/subject/ozyyottx.html