????????????Singleton Pattern??
???????????????У?????????????????????????????????????????????????
???????д??????????????
//??????????
public class Singleton {
//.....???????????Щ????
//uniqueInstance?????????????????
private static Singleton uniqueInstance;
//??л????????????????????????????
private Singleton() {
}
//???????getInstance()????????????Singleton.getInstance()?????????
public static Singleton getInstance() {
//uniqueInstance????е?????????????????????????????????????????д???
if(uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
//.......???????????Щ????
}
???????????????ó???????????????????????????д????????????????????????????????辭????????????д??????????????
???????getInstance()?????????????
//??????????
public class Singleton {
//.....???????????Щ????
//uniqueInstance?????????????????
private static Singleton uniqueInstance;
//??л????????????????????????????
private Singleton() {
}
//???????getInstance()????????????Singleton.getInstance()?????????
public static synchronized Singleton getInstance() {
//uniqueInstance????е?????????????????????????????????????????д???
if(uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}
//.......???????????Щ????
}
???????synchronized?????????getInstance()???????????????????????????????????????????????????????????????????????????????ε????????????????????????????????????????????δ?????????????????????????д?????????
?????????д???????????
//??????????
public class Singleton {
//.....???????????Щ????
//?????????????????uniqueInstance?????????????????????????JVM?????????????????????????????????????????????????????
private static Singleton uniqueInstance = new Singleton();
//??л????????????????????????????
private Singleton() {
}
//???????getInstance()????????????Singleton.getInstance()?????????
public static Singleton getInstance() {
return uniqueInstance;
}
//.......??????????Щ????
}
????????д????????Ч???????????????????????????????????????????????Ч????£??????????д?????
????????????д???????????
//??????????
public class Singleton {
//.....???????????Щ????
//volatile???????????jdk1.5????汾?????????uniqueInstance???????????????????????????uniqueInstance????
private volatile static Singleton uniqueInstance;
//??л???????
private Singleton() {
}
//????????δ????????????????и÷???
public static Singleton getInstance() {
//????μ??????null
if(uniqueInstance == null) {
//???????
synchronized (Singleton.class) {
//????μ??????null
if(uniqueInstance == null) {
//?????????
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
//.......??????????Щ????
}
????????д?????????????????????jdk1.5?汾???????
???????????д???????????
//???????????????
public enum SingletonEnum {
//????SingletonEnum.INSTANCE???????????????????????????????л?????????????????
INSTANCE;
//...????????
}
???????jdk1.5?汾??????????????????????????????????????????д????