Spring橫行的今天看似自己寫單例的時候不多啊.
公司一個高階技術總監級別的。在他的專案中偶爾看到一段程式碼:
public class SigarUtil {
private static Sigar sigar;
public static Sigar getInstance() {
if (null == sigar) {
sigar = new Sigar();
}
return sigar;
}
}
複製程式碼
額~~應該是有點問題的,至少執行緒不安全。看樣子單例並不簡單。
話不多說,上乾貨:
public class Singleton {
private static class Holder {
private static Singleton singleton = new Singleton();
}
private Singleton(){}
public static Singleton getSingleton(){
return Holder.singleton;
}
}
複製程式碼
再上乾貨:
public enum Singleton {
INSTANCE;
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
複製程式碼