单例模式的几种写法

一、懒汉式

public class Singleton {

    // 私有的构造函数
    private Singleton() {
        
    }
    
    // 静态变量
    private static Singleton instance;
    
    // 静态方法
    public static Singleton getInstance() {
        // 当instance为null时赋值
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

二、饿汉式

public class Singleton {

    // 私有的无参构造函数
    private Singleton() {
        
    }
    
    // 静态变量
    private static Singleton instance = new Singleton();
    
    // 静态方法
    public static Singleton getInstance() {
        return instance;
    }
}

三、占位符式

public class Singleton {

    // 私有的构造方法
    private Singleton() {
        
    }
    
    // 静态内部类
    private static class SingletonInstance {
        private static Singleton instance = new Singleton();
    }
    
    // 静态方法
    public static Singleton getInstance() {
        return SingletonInstance.instance;
    }

}

 

posted @ 2016-12-07 10:52  宁采桃花不采臣  阅读(208)  评论(0编辑  收藏  举报