单例模式与Android

http://blog.csdn.net/ljianhui/article/details/29275655

多线程下的单例模式是不安全的

Android中的单例模式

Android中存在着大量的单例类,如:InputMethodManager类,CalendarDatabaseHelper类、Editable类等等。在这些类中,都存在一个方法getInstance,在该方法或直接返回对象的引用或判断一个类的引用是否为NULL,若不为NULL,则直接返回该引用,若为NULL,则new一个新的对象,并返回。例如,对于CalendarDatabaseHelper类,存在如下的代码:

1 public static synchronized CalendarDatabaseHelper getInstance(Contextcontext)
2 {
3 if (sSingleton == null)
4 {
5 sSingleton = newCalendarDatabaseHelper(context);
6 }
7 return sSingleton;
8 }

从这里的代码可以看出,其实现方式与上面所说的非常相似,不过因为java不用程序员自己管理内存,所以并不需要使用引用计数,而该方法是公有static的。而synchronized就是为了保证同一时刻只能有一个线程进入该方法,这也就是防止上面第六点讲到的单例模式在多线程中的安全问题。

单例模式与Android,布布扣,bubuko.com

时间: 2024-10-01 07:17:16

单例模式与Android的相关文章

设计模式实例学习-单例模式(Android中的使用场景)

1.设计模式实例-单例模式 单例模式,故名思议,是指在一个类中通过设置静态使得其仅创造一个唯一的实例.这样设置的目的是满足开发者的希望--这个类只需要被实例化创建一次,同时因为其为静态的缘故,加载的速度也应该快于正常实例化一个类的速度(理论上). 在Android开发中,当我们需要创建一个Fragment的时候常常会用到这样的模式,没有代码的学习是虚无的,接下来亮代码学习: public class SelectFrame extends Fragment { private final sta

单例模式在android中的应用

项目演示及讲解 爱奇艺  http://www.iqiyi.com/w_19rtfb03pp.html 土豆 http://www.tudou.com/programs/view/M1R6cIW15DY/ 项目下载 http://download.csdn.net/detail/u010134178/9052163 什么是单例模式 百度"java 单例" 以下是通过一个简单的列子来说明它的用户,别看这简单的例子,在公司项目里这可是最基本的呀 1.一个图片池类 public class 

单例模式在android中使用

单例模式(Singleton) 单例模式是对象的创建模式,单例模式能够确保某个类只有一个单一的实例对象存在,同时能够自行实例化并将单一的实例提供给外界调用的特点,其在实际项目开发中经常被用到. 单例模式的结构图说明如下: 结合上面的模式结构说明图,我们可以看到单例模式有几个显著的特点,具体如下所示: A.单例类(Singleton)只能有一个唯一的实例存在. B.单例类必须有能够自行创建自己的实例对象的能力. C.单例类必须能够给外界其他对象提供这个实例. 另外,对于单例模式从产生到现在,也已经

设计模式-单例模式(Singleton)在Android开发应用场景思考和遇到的坑

介绍 在上篇博客中详细说明了各种单例的写法和问题.这篇主要介绍单例在Android开发中的各种应用场景以及和静态类方法的对比考虑,举实际例子说明. 单例的思考 写了这么多单例,都快忘记我们到底为什么需要单例,复习单例的本质 单例的本质:控制实例的数量 全局有且只有一个对象,并能够全局访问得到. 控制实例数量 有时候会思考如果我们需要控制实例的数量不是只有一个,而是2.3.4或者任意多个呢?我们怎样控制实例的数量,其实实现思路也简单,就是通过Map缓存实例,控制缓存的数量,当有调用就返回某个实例,

Android设计模式之单例模式(Singleton Pattern)

个人总结学习和研究,部分内容参考<Android源码设计模式解析与实战>一书~~ 一.  定义: 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 也就是说,单例要满足3点: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例.(构造函数私有化,防止外部程序通过new来构造). 3.单例类必须给其他对象提供这一实例.(暴露公有静态方法或者通过枚举返回单例类对象). 二.  使用场景: 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多的资源.比如说在一个

Android 设计模式 之 单例模式

http://blog.csdn.net/fangchongbory/article/details/7734199 目录(?)[+] 单例模式常见情景 首先实现1中的单例模式A 实现2中单例模式B 实现3单例模式C 实现4单例模式D 可带参数单例模式E 终极版单例模式F android中源码单例模式举例 日历模块 Collator类 Editable类 AccessibilityManager类 1.单例模式常见情景 设计模式中,最简单不过的就是单例模式.先看看单例模式 原文:http://w

Android——单例模式

详细的各种模式 http://mobile.51cto.com/android-419145.htm http://wenku.baidu.com/link?url=f3yjQ6YvslvHcWJLbyKTbu3D2K-gESwOhW7HQnVV6RJIEuhZz-Gw5P8kFRw2wo3T1PicDsuKn2AgRiy99TUcxIJdjx8yp4lf6Gf5W2sHFeu http://baike.baidu.com/link?url=oAR1a4M5t3vjl2ktev8cuOAOKnZ

android开发学习 ------- 【转】 android中的单例模式 (详解)

https://blog.csdn.net/u011418943/article/details/60139644     这篇文章 前因后果 都说出来了 ,值得学习. https://blog.csdn.net/nuobabijie730/article/details/52191150   单例模式在android中的实际使用 https://blog.csdn.net/Card361401376/article/details/51347184 原文地址:https://www.cnblo

Android与设计模式——单例(Singleton)模式

概念: java中单例模式是一种常见的设计模式.单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类仅仅能有一个实例. 2.单例类必须自己自己创建自己的唯一实例. 3.单例类必须给全部其它对象提供这一实例. 单例模式确保某个类仅仅有一个实例.并且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机能够有若干个打印机,但仅仅能有一个Pri