核心原理
单例模式的核心原理是将构造函数私有化, 并且提供一个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.------