美文网首页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、可以再系统设置全局的访问点,优化和共享资源访问。

相关文章

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • LayoutInflater源码分析

    在《(-)Android中的单例模式》分析中,我们分析了Android中单例模式的实现,且以LayoutInfla...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • 单例模式

    单例模式及C++实现代码单例模式4种实现详解 c++11改进我们的模式之改进单例模式 单例模式(Singleton...

  • JAVA基础之单例

    JAVA单例的几种形式以及其优缺点。 Android 中的单例模式 - 简书 单例的定义:Singleton模式的...

  • Android中的单例模式详解

    定义: 单例模式:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式其他方式: 1、懒汉...

  • 单例模式安全之反射攻击

    单例模式安全之反射攻击 源码 单例模式这里就不谈了,什么是单例模式可参考七种Java单例模式详解,这里是关于单例模...

  • Java架构师课程

    Java架构班开学典礼 Spring中常用的设计模式概述及工厂模式详解 单例模式及原型模式单例模式及原型模式单例模...

网友评论

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

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