设计模式之单例模式

面向对象的世界里,在一个系统或者应用的生命周期中,总会伴随着对象的大量创建和销毁。有的对象生命周期很短,如昙花一现;有的生命周期却很长,跟电视剧的主角一样可以活到最后一集。具有主角光环的这个对象就是单例对象。 单例模式的目的就是确保在系统或应用的生命周期中,一个类Class只有一个实例对象存在。

单例对象的特点之一就是该对象生命周期比较长(当然不排除某个子系统内部的使用完毕后就置null),所以应用的各个子功能或者系统都可以访问使用它(前提是该单例对象是public的)。但是这样会有一个内存泄漏的风险,如果单例对象持有了一个生命周期比较短的对象引用,那么这个短生命周期一直得不到释放从而不能被系统回收,就会造成内存泄漏。比如Android中常见的Context、activity对象的泄漏。对短生命周期的对象来说,有一种求死不能的感觉。

另外该对象的关联的状态和数据是不能有变化的,否则会引起数据的错误。

在Android中可能常见的单例对象有:
1、EventBus对象
2、Glide对象
3、OkhttpClient对象
4、Android的ApplicationContext对象

你可能感兴趣的:(设计模式之单例模式)