深入学习:单例

作者: 眷卿三世 | 来源:发表于2017-06-02 16:28 被阅读0次

本文摘自:Android编程权威指南

Android开发实践中,经常会用到CrimeLab中使用过的单例模式。然而,单例使用不当的话,

会导致应用难以维护,因此它也常 人  。

Android开发常用到单例的一大原因是,它们比fragment或activity活得 。例如,在设备旋转

或是在fragment和activity间跳转的场景下,单例不会受到影响,而旧的fragment或activity已经不

复存在了。

单例能方便地存储控制模型层对象。假设有个比CriminalIntent更为复杂的CriminalIntent应

用,它的许多个activity和fragment会修改crime数据。某个控制单元修改了crime数据之后, 么保

证发 给其他控制单元的是最新数据呢?如果CrimeLab掌控数据对象,所有的修改都由它来处

理,是不是数据的一致性控制就容易多了?而且,在控制单元间 转时,我们还可以给每个crime添加ID标识,让控制单元使用ID标识从CrimeLab获取完整的crime数据。

再来  单例的缺点。举个例子,虽然单例能存储数据,活得比控制单元  ,但这并不代

表它能 存。在我们切换至其他应用,又Android回收内存时,单例 同那些实例变量也就不

复存在了。结论很明显:单例无法做到持 存储。(将文件写入 盘或是发 到Web服务器是不

错的数据持 化存储方案。)

单例还不利于单元  。例如,如果应用代码直接调用CrimeLab对象的 态方法,  时以

模 版本的CrimeLab代替实际CrimeLab实例就不 现实。实践中,Android开发人员会使用工具解决这个问题。这个工具允许以单例模式使用对象,对象也可以按需替换。

单例使用很方便,因而很容易被滥用。在想用就用,想存就存之前,  你能深思熟虑:数

据 竟用在哪里?用在哪里能真正解决问题?

假如不 重对待这个问题,很可能后来人在查看你的单例代码时,就 打开了一个满是 糟

糟  的  :  、  、旧照片,等等。它们有什么存在的意义?再强调一次:请确保

有充足的理由使用单例模式存储你的共享数据!

使用得当,单例就是拥有优 架构的Android应用中的关键部件。

相关文章

  • 【Java】设计模式 —— 深入浅出单例模式

    学习笔记 参考:深入浅出单实例SINGLETON设计模式单例模式【Java】设计模式:深入理解单例模式 场景:一般...

  • 深入学习:单例

    本文摘自:Android编程权威指南 Android开发实践中,经常会用到CrimeLab中使用过的单例模式。然而...

  • 单例模式深入学习1

    单例模式的定义是保证一个类仅有一个实例,并提供一个全局访问点。一般用在工具类、应用配置、数据库连接池的创建上。 优...

  • 单例模式深入学习2

    通过一系列演进,现在我们可以确定改造后的单例模式在系统运行过程中只会产生一个单例对象。但是这是不是坚不可摧的呢?实...

  • 老司机开高铁带你深入理解单例模式(sigleton)线程安全问题

    今天,趁着大家都在改bug,而我又不是特别忙的情况下,深入的学习了一下单例模式。 下面就让我们来聊一聊单例模式: ...

  • iOS-单例模式

    swift的单例设计模式 OC的单例设计模式 新学习一种单例思想

  • 面试官问:单例能否new出新对象

    1 这只能说明对单例理解不深入,能new出新对象的object就不是单例了。 2 还有面试官问单例和全局变量有啥区...

  • 设计模式——单例模式

    1.单例模式介绍 单例模式是应用最广的模式,也是我最先知道的一种设计模式,在深入了解单例模式之前,每当遇到如get...

  • 深入java单例模式

    单例模式简介 在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面...

  • 深入 Java 单例模式

    在 GoF 的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计...

网友评论

    本文标题:深入学习:单例

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