SQLITE数据库的使用是Android单例模式典型的应用场景。

单例模式好处:

将对象写成static,避免内存频繁实例化,因此对象在静态内存区只有一份。直接使用getInstance()取得对象。

模型类

  1. public class DatabaseHelper extends SQLiteOpenHelper
  2. private static DatabaseHelper mInstance = null;
  3. /** 单例模式 **/
  4. static synchronized DatabaseHelper getInstance(Context context)
  5. {
  6. if (mInstance == null)
  7. {
  8. mInstance = new DatabaseHelper(context);
  9. }
  10. return mInstance;
  11. }

以静态方式定义的对象,可以在其它类中直接调用。例如,假定一个应用类:

  1. public class Newdate extends Activity
  2. private DatabaseHelper mDbHelper;
  3. private void initParam()
  4. {
  5. mDbHelper = DatabaseHelper.getInstance(this);
  6. }

这里涉及一个JAVA的关键字synchronized ,见Android栏关键字项中对相关文章对它的分析。

Android单例模式应用场景相关推荐

  1. 用C#举例单例模式应用场景有哪些

    单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点. 以下是一些常见的单例模式应用场景: 系统配置:在应用程序中,有时需要访问一些全局配置,比如数据库连接字符串等.使用单例模 ...

  2. 单例模式应用场景及实现(By C++)

    单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源.如果希望在 ...

  3. android 单例模式的使用场景,android设计模式之单例模式

    (其实设计模式应该从属于java,但是会专门针对android做相应的解释,所以就取名为android设计模式~) 一.单例模式的介绍 单例模式是应用最广的模式之一,在应用这个模式的时候,单例对象的类 ...

  4. android 单例模式的使用场景,Android设计模式—单例模式

    定义 确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 应用场景 确保某个类有且只有一个对象的场景,避免产生多个对象消耗过多资源,或者某种类型的对象只应该有且只有一个.例如,创建一个对 ...

  5. Android之什么场景该使用单例模式总结

    1.什么是单例模式 单例模式意味着只有一个对象,至于单例模式如何实现就不这里就不多说了,有很多种实现办法. 2.什么时候该使用单例模式?如果不使用单例模式会出现什么问题? 先举2个例子   例子1   ...

  6. android 单例模式详解,android开发设计模式之——单例模式详解

    单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到.比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenH ...

  7. 单例模式应用场景_三、单例模式详解

    4.单例模式详解 4.1.课程目标 1.掌握单例模式的应用场景. 2.掌握IDEA环境下的多线程调试方式. 3.掌握保证线程安全的单例模式策略. 4.掌握反射暴力攻击单例解决方案及原理分析. 5.序列 ...

  8. android服务应用场景,Android Service的使用介绍

    简介 Service是Android应用程序中的一个组件,与用户不进行交互,可以长期的执行在后台.当新建一个服务的时候需要在AndroidManifest.xml文件中进行声明.服务可以通过Conte ...

  9. 单例模式应用场景_【简易设计模式04】单例模式

    总第56篇 在上篇中,我们对整个系统的设计应遵循的六大设计原则进行了系统性的梳理和讲解.在开发过程中,我们应尽量按照这些设计原则去做,当然也不能生搬硬套,要适当权衡,根据自己的项目情况.项目场景去考量 ...

最新文章

  1. 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解
  2. sscanf用法总结
  3. 【翻译】WF从入门到精通(第十一章):并行活动
  4. 《LeetCode力扣练习》第75题 颜色分类 Java
  5. Android10.0 Binder通信原理(五)-Binder驱动分析
  6. Xamarin XAML语言教程基本页面ContentPage占用面积内容页面的派生关系与属性
  7. 如何检测图像中的条纹_图像增强模块在检测中的应用实例
  8. React Suite 做了一个有意思的决定
  9. Linux centos 6.7 设置主机名
  10. MySQL【问题记录 01】报错 1709 - Index column size too large. The maximum column size is 767 bytes. 可能是最简单的方法
  11. Qt Quick测试
  12. !假如人类使用 16 进制
  13. ASP.NET Core 集成测试中结合 WebApplicationFactory 使用 SQLite 内存数据库
  14. 神经网络思想建立LR模型(DL公开课第二周答案)
  15. OpenGL编程指南(第七版)
  16. 取整的计算机语言符号,word取整符号
  17. 创新科技成果广东功能性水稻品种 国稻种芯百团计划行动
  18. Android 内容复制到剪贴板
  19. Android win10 平板 省电,小编解答win10系统Mobile设置更省电的图文办法
  20. 【互联网人的英语】什么时候适合用“词根词缀法”来背单词?

热门文章

  1. 解决Mac升级偏好设置上的小红点还在的问题
  2. 单例模式,饿汉与懒汉
  3. 时间序列-预测(Forcasting):时间序列预测算法总结
  4. 用VB.NET实现AUTOCAD中鼠标选中后显示事件
  5. 计算机毕业设计(73)php小程序毕设作品之美食菜谱小程序系统
  6. 四款CROSS车型推荐篇
  7. 【Linux】解除端口占用的问题
  8. 微信记录丢失还能恢复吗丨苹果手机
  9. QDialog 基本使用
  10. 三大电信运营商携号转网数据_狼烟再起,携号转网之后三大运营商何去何从?剖析三者利弊...