package com.camnter.newlife.utils.other;
/**
* Description:Singleton
* Created by:CaMnter
* Time:2016-02-27 22:07
*/
public class Singleton {
private volatile static Singleton instance = null;
private Singleton() {
}
/***********
* 方案 一 *
***********/
public static Singleton getInstance() {
Singleton inst = instance; // <<< 在这里创建临时变量
if (inst == null) {
synchronized (Singleton.class) {
inst = instance;
if (inst == null) {
inst = new Singleton();
instance = inst;
}
}
}
return inst; // <<< 注意这里返回的是临时变量
}
/***********
* 方案 二 *
***********/
private static class SingletonHolder {
static final Singleton singleton = new Singleton();
}
public static Singleton getSingleton() {
return SingletonHolder.singleton;
}
/***********
* 方案 三 *
***********/
public enum SingletonEnum {
INSTANCE
}
}