三種簡單的單例模式小例子
阿新 • • 發佈:2019-02-20
第一種
public class SingtenDemo1 {
private volatile static SingtenDemo1 singleton;
private SingtenDemo1 (){}
public static SingtenDemo1 getSingleton() {
if (singleton == null) {
synchronized (SingtenDemo1.class) {
if (singleton == null) {
singleton = new SingtenDemo1();
}
}
}
return singleton;
}
}
第二種
public class SingtenDemo2 {
private static SingtenDemo2 instance = null;
static{
instance = new SingtenDemo2();
}
private SingtenDemo2(){}
public static SingtenDemo2 getInstance(){
return instance;
}
}
第三種
public enum SingtenDemo {
INSTANCE;
}
第三種單例模式預設支援序列化和反序列化.