单例设计模式(Java)

单例设计模式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例。

饿汉式

方法一:使用静态方法和静态对象

class Bank{
    
    
	
	//1.私化类的构造器
	private Bank(){
    
    
		
	}
	
	//2.内部创建类的对象
	//4.要求此对象也必须声明为静态的
	private static Bank instance = new Bank();
	
	//3.提供公共的静态的方法,返回类的对象
	public static Bank getInstance(){
    
    
		return instance;
	}
}

方法二:使用静态代码块

class Order{
    
    
	
	//1.私化类的构造器
	private Order(){
    
    
		
	}
	
	//2.声明当前类对象,没初始化
	//4.此对象也必须声明为static的
	private static Order instance = null;

	static{
    
    
		instance = new Order();
 }
	
	//3.声明public、static的返回当前类对象的方法
	public static Order getInstance(){
    
    
		return instance;
	}
	
}

懒汉式

class Bank{
    
    

	//1.私化类的构造器
    private Bank(){
    
    }
    
	//2.声明当前类对象,没初始化
	//4.此对象也必须声明为static的
    private static Bank instance = null;

	//3.声明public、static的返回当前类对象的方法
    public static Bank getInstance(){
    
    

        if(instance == null){
    
    
			
			//使用synchronized锁确保线程安全
            synchronized (Bank.class) {
    
    
                if(instance == null){
    
    

                    instance = new Bank();
                }

            }
        }
        return instance;
    }

}

饿汉式:
好处:本来就是线程安全的,不需要加锁,易于修改和维护。
坏处:对象加载时间过长。

懒汉式:
好处:延迟对象的创建。
坏处:需要使用同步机制(锁)确保线程安全。

猜你喜欢

转载自blog.csdn.net/m0_50654102/article/details/114289138