当前位置: 首页 > news >正文

Android中的设计模式---单例模式

1.什么是单例模式?

单例模式是一种创建型设计模式。它保证一个类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。

2.什么情况下会用到单例?

①频繁访问数据库或文件的对象;
②工具类对象;
③创建对象时耗时过多或耗费资源过多,但又经常用到的对象;
Android中习惯使用单例的常见类: xxxManager , xxxHelper , xxxUtils 等

APPManager(可在栈中添加,删除activity,获取栈顶activity等方法)

BaseApplication(在app启动的时候就启动,启动在所有activity之前,可以做一些资源初始化)

 3.Android系统中用到的单例?

//获取WindowManager服务引用
WindowManager wm = (WindowManager) getSystemService(getApplication().WINDOW_SERVICE);

4.为什么要使用单例?

当一个对象被很多地方调用时,比如网络请求库okhttp、Retrofit就可以只实例化一次,不用频繁的进行创建和销毁,从而节省系统资源。

5.单例的原则?

①构造私有。构造函数不对外开放,一般为private。
②以静态方法或枚举返回实例。
③确保实例只有一个,尤其是在多线程环境。
④确保实例在反序列化时不会重新构建对象。

6.单例模式的优点?

①单例类只有一个实例,节省内存开销,对于一些需要频繁创建、销毁的对象,使用单例模式可以提高系统性能;
②避免对资源的多重占用。例如一个文件操作,由于只有一个实例存在内存中,避免对同一资源文件的同时操作。
③单例模式可以在系统设置全局的访问点,优化和共享数据,例如页面计数器就可以用单例模式实现计数值的保存。<

http://www.lryc.cn/news/319436.html

相关文章:

  • 【NLP笔记】文本分词、清洗和标准化
  • 2024 年系统架构设计师(全套资料)
  • springboot蛋糕订购小程序的设计与实现
  • MongoDB——linux中yum命令安装及配置
  • 序列化笔记
  • ArkTs的资源Resource类型怎么转为string
  • Apache zookeeper kafka 开启SASL安全认证
  • Rust 的 inline 内联编译策略
  • 软考73-上午题-【面向对象技术2-UML】-UML中的图4
  • html编辑器
  • 利用“定时执行专家”软件的25种任务与12种触发器,提升IT系统管理自动化水平
  • 设计模式学习笔记 - 规范与重构 - 8.实践:程序出错返回啥?NULL、异常、错误吗、空对象?重构ID生成器,处理各函数的异常
  • 【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口号,html 的介绍【附代码文档】
  • langchain+chatglm3+BGE+Faiss Linux环境安装依赖
  • Kubernetes kafka系列 | k8s部署kafka+zookeepe集群(可外部通信)
  • IDEA创建Sping项目只能勾选17和21,没有Java8?
  • ChatGPT 遇到对手:Anthropic Claude 语言模型的崛起
  • 【LeetCode热题100】148. 排序链表(链表)
  • Ubuntu Linux - Primavera P6 EPPM 安装及分享
  • 微信小程序开发学习笔记——3.11完成form评论案例的实现逻辑
  • Linux/Ubuntu/Debian控制台启动的程序和terminal分离的方法-正在运行怎么关闭窗口
  • Lua-Lua与C的交互3
  • TensorFlow的介绍和简单案例
  • 基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计
  • 【Stable Diffusion】入门-04:不同模型分类+代表作品+常用下载网站+使用技巧
  • vue3之带参数的动态路由
  • 深入探讨GPT系列与其他NLP架构的流行度差异及其应用解析
  • 实现兼容性良好的前端页面开发
  • Rust学习02:推荐一本入门书,免费的
  • npm run dev命令的执行顺序和原理