您的位置:首页 > 编程语言 > Java开发

java单例模式4种使用方式分享

2014-02-18 09:28 603 查看

1、Java Concurrency In Practice的List

复制代码 代码如下:
public class Singleton { 
    private static class SingletonHolder { 
        public static Singleton resource = new Singleton(); 
    } 
    public static Singleton getResource() { 
        return  SingletonHolder.resource ; 
    } 

    private Singleton(){ 

    } 
}

2、effective Java

复制代码 代码如下:
public class Singleton { 
    public static final Singleton INSTANCE = new Singleton(); 

    private Singleton(){} 

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

3、利用枚举巧妙创建单实例

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

4、双重锁

复制代码 代码如下:
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; 
    } 
}

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 单例模式