设计模式之单例模式 - Singleton

核心原理

单例模式的核心原理是将构造函数私有化, 并且提供一个static 的getInstance()方法获取一个static的单例对象.

应用场景

有些类会持有很多资源, 比如ImageLoader类就会创建自己的线程池, 调用网络API等, 为了避免这些资源在进程中被创建多份, 影响整体性能. 一般对于ImageLoader这样的类来说, 都要去使用单例模式.
还有就是像设置类, 比如BrowserSettings.java, 对这个类来说, 是没有必要创建多个它的对象出来, 因此也最好使用单例模式.

最常用的实现方式

实现单例有几种常用的方法, 但项目中最常用的标准方法是使用DCL(Double Check Lock)的方式实现.

public class Singleton {

    private static Singleton _instance;

    private Singleton() {

    }

    public static Singleton getInstance() {
           if(_instance == null) {
              synchronized(Singleton.class) {
                     If(_instance == null) {
                            _instance = new Singleton();
                     }
              }
           }
            return _instance;
    }

}

其他的几种实现方式了解一下就行了, 自己写项目时, 只要记住用DCL的方式写代码就可以了.

---DONE.------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免...
    修罗掌柜阅读 836评论 0 3
  • 先说一下我自己对单例模式的理解: 单例模式:在整个程序运行周期内,某个类被设计为其所有实例都归属于一个副本,以保证...
    Mock2052阅读 471评论 0 0
  • 在 JavaScript 开发中,单例模式的用途非常广泛。比如,当我们单击登录按钮的时候,页面中会出现一个登录浮窗...
    风铭阅读 528评论 0 0
  • (一) 我曾不止一次地问过猴子,你为什么要随着那个叫做唐僧的人去西天取经。 猴子的回答很简单,他说累了。 我不知道...
    OnlyDog阅读 393评论 2 2
  • 27岁了,不大不小的年纪 从没有想过自己会是两个孩子的妈妈 也许从一开始就没有做好当妈妈的准备,是既来之则安之。 ...
    霞大宝阅读 1,516评论 2 2