单例模式(Singleton Pattern)

总的来说实现方式,即为:私有化构造,对外提供公共方法用于创建实例

public class Singleton { 
    private static class SingletonHolder { 
        public static Singleton resource = new Singleton(); 
    } 
    public static Singleton getResource() { 
        return  SinletonHolder.resource ; 
    } 
     
    private Singleton(){ 
         
    } 
}

================================================

public class Singleton { 
    public static final Singleton INSTANCE = new Singleton(); 
     
    private Singleton(){} 
     
    public void method(){ 
        //... 
    } 
    public static void main(String[] a){ 
        //调用方法。 
        Singleton.INSTANCE.method(); 
    } 
}

================================================

/**
* 利用枚举巧妙创建单实例
*/ 
public enum Singleton { 
    INSTANCE; 
    public void method(){ 
        //... 
    } 
    public static void main(String[] a){ 
        //调用方法。 
        Singleton.INSTANCE.method(); 
    } 
}  

=================================================

public class Singleton { 
    private static volatile Singleton instance = null; 
    /**
     * 防止其他人new对象
     */ 
    private Singleton(){ 
        System.out.println("init"); 
    } 
    public static  Singleton getInstance(){ 
        if(instance == null){ 
            synchronized(Singleton.class){ 
                if(instance == null){ 
                    instance = new Singleton(); 
                } 
            } 
        } 
        return instance; 
    } 
}



你可能感兴趣的:(单例模式(Singleton Pattern))