设计模式之单例模式 - 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.------

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