美文网首页
通过retrofit学习使用容器列表实现单例模式

通过retrofit学习使用容器列表实现单例模式

作者: 爱你为你做饭 | 来源:发表于2019-11-25 16:29 被阅读0次
  1. 引语
    单例模式在Android的开发过程中很重要也是使用很方便的一种设计模式,使用场景通常是工具类或者对象创建销毁很消耗资源的情况下这两种情况通常都是单个类单例唯一,还有一种场景不是单个类的单例唯一而是要保证多个类唯一下面是比较长用的场景示例:
  • 项目框架设计中会有很多的功能组件,每一个功能组件都会对外提供一个manager(api抽象)满足外面访问和调用,这些功能manager通常都是单例唯一的,可以每一个都提供单例但是会很混乱,此时使用容器管理多对象的单例唯一就是个不错的选择。
  • 还有一种场景就是list等容器要保证内部对象的单例唯一,主要是线程的考虑,比如list add对象跨线程调用是不能保证添加的对象唯一,即时做了contail的校验判断,所以这个时候也得借助于单例模式的实现。retrofit的loadservicemethod就是这个场景的一种实现。
  • 对象单例的要素:
        * 构造方法私有,外面不能构造对象
        * 线程单例,外面可能多线程访问对象,线程的时间差内不会重复创建对象。
        * 对象的序列化和反序列化不会重新创建对象。
  1. 通过容器注册的方式实现容器对象的单例


    容器注册单例模式

        * 持有hashmap对象来缓存管理对象,并提供register和get两个api对子对象进行处理,特别注意的hashmap对象和register修饰符是private,私有不能被外面对象访问,仅能被当前整合manager管理类访问,而get方法则是公共的可以被外面对象访问,即外面只能取不能存。
        * manager的构造方法中调用register方法,利用manager的单例模式保证hashmap中的对象仅被注册一次,进而保持了对象的单例唯一。
        * 此模式比较适合项目架构中功能组件的manger的管理,架构开发者进行单例对象的注册,外层开发人员只是调用访问即可

  2. 使用加锁单例模式的方式实现容器对象的单例


    加锁单例模式

        * 代码和加锁双层校验单例模式一样,通过这种方式保证了容器内的对象唯一

相关文章

  • 通过retrofit学习使用容器列表实现单例模式

    引语单例模式在Android的开发过程中很重要也是使用很方便的一种设计模式,使用场景通常是工具类或者对象创建销毁很...

  • 单例模式

    饿汉模式: 懒汉模式: Double CheckLock(DCL)实现单例 静态内部类实现单例 枚举单例 使用容器...

  • 单例模式之枚举类enum

    通过枚举实现单例模式 枚举类实现单例模式的优点 对于饿汉式单例模式和懒汉式单例模式了解的同学,使用以上两种单例模式...

  • python面试题-2018.1.30

    问题:如何实现单例模式? 通过new方法来实现单例模式。 变体: 通过装饰器来实现单例模式 通过元类来创建单例模式...

  • 网络加载框架 - Retrofit-KT

    实战时候使用KT,进行Retrofit网络请求:使用单例模式, 成员变量private val retrofit:...

  • 单例模式(二)

    单例模式在Android源码中的应用 除了之前说的几种单例的实现方式之外还可以使用容器来实现。 在Android的...

  • iOS 单例

    单例模式实现不能使用继承 定义单例实现 简写 定义单例实现宏

  • 1.4 创建型-单例模式

    单例模式使用场景:如果一个类只需要有一个对象,比如线程池,则可以使用单例模式。 单例模式实现方式:通过对构造方法私...

  • Python两种方式实现单例模式

    装饰器模式实现单例 通过拦截类创建的是模式实现单例 测试结果

  • 2018-12-04

    单例模式 目录 -饿汉模式 -懒汉模式 - 双重检测 - 静态内部类 - 枚举实现 - 容器实现 饿汉模式 代码 ...

网友评论

      本文标题:通过retrofit学习使用容器列表实现单例模式

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