单例模式

//饿汉式 单例模式
class Bank{
    
    //1.私有化类的构造器
    private Bank() {
    }
    
    //2.内部创建类的对象 (类的实例)
    private static Bank bank = new Bank();
    
    //3.提供公共的静态方法 , 返回类的对象 (注 :静态方法中只能调用静态结构)
    public static Bank getInstance() {
        return bank;
    }
}
//懒汉式 单例模式
class Order{
    
    //1.私有化类的构造器
    private Order() {
    }
    
    //2.声明当前类的对象 , 但不初始化
    private static Order instance=null;
    
    //3.提供public , static 的返回当前对象的方法
    public static Order getInstance() {
        if(instance == null) {
            instance = new Order();
        }
        return instance;
    }
}

/线程安全的懒汉式单例模式 : 同步方法
class Bank{
    //1.私有化类的构造器
    private Bank(){};
    //2.声明当前类的对象 , 但不初始化
    private static Bank instance=null;
    //3.提供public , static 的返回当前对象的方法
    public static synchronized Bank getInstance(){
        if (instance == null){
            instance=new Bank();
        }
        return instance;
    }
}

//线程安全的懒汉式单例模式 : 同步代码块
class Bank1{
    //1.私有化类的构造器
    private Bank1(){};
    //2.声明当前类的对象 , 但不初始化
    private static Bank1 instance=null;
    //3.提供public , static 的返回当前对象的方法
    public static Bank1 getInstance(){
        synchronized(Bank1.class) {
            if (instance == null) {
                instance = new Bank1();
            }
            return instance;
        }
    }
}
原文地址:https://www.cnblogs.com/Anonymity-zhang/p/14293801.html