最常用的设计模式-单例

设计模式

Posted by TBKK on September 19, 2018

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;
    }
}