Java--单例设计模式

目录

设计模式概念

🍐单例设计模式

一.单例设计模式---懒汉式

二.单例设计模式---饿汉式


设计模式概念

设计模式:经验的总结,大量业务开发实践中,针对某些需求,总结的一套开发经验。比如程序运行时,希望内存中只存在一个对象的实例(或考虑用于共享数据,或考虑实例多了浪费空间),针对这样的需求如何做到呢?经长期实践总结,有以下方式可以轻松做到,记住了这种设计模式也就可以轻松完成这个需求,不需要再从头思考各种细节问题来完成。

🍐单例设计模式

单例: 也就是一个类中只能有一个实例。分为 懒汉式 和 饿汉式
懒汉式: 是延迟加载的方式,只有使用的时候才会加载
饿汉式: 加载的时候就创建好对象了, 是立即加载的方式
使用场景: 看业务需求,如果业务上允许有比较充分的启动和初始化时间,就使用 饿汉式,否则就使用 懒汉式

一.单例设计模式---懒汉式

🚀是延迟加载的方式,只有使用的时候才会加载。 使用懒汉式,在启动的时候,会感觉到比饿汉式略快,因为并没有做对象的实例化。 但是在第一次调用的时候,会进行实例化操作,感觉上就略慢。

方式一:懒汉式

public class Single01 {

    private static Single01 single01 = null;
    /*
    构造器私有化
     */
    private Single01(){
    }
    /**
     * 外部访问接口
     * @return
     */
    public static Single01 getInstance() {
        if (single01 == null) {
            single01 = new Single01();
        }
        return single01;
    }
}
方式二:懒汉式

public class Singleton {
	private static Singleton instance;
	private Singleton(){
		
	}
	public static Singleton getInstance(){
		if(instance == null){
			synchronized (Singleton.class) {
				if(instance == null){
					instance = new Singleton();
				}
			}
		}
		return instance;
	}
}

二.单例设计模式---饿汉式

🚀加载的时候就创建好对象了, 是立即加载的方式,无论是否会用到这个对象,都会加载。

方式一:饿汉式

public class Single02 {
    private static final Single02 single02 = new Single02();

    /**
     * 私有构造器
     */
    private Single02(){

    }

    /**
     * 外部访问接口
     * @return
     */
    public static Single02 getInstance() {
        return single02;
    }
}
方式二:饿汉式

public class Singleton {
	public static final Singleton INSTANCE = new Singleton();
	private Singleton(){
	}
}
方式三:饿汉式


public enum Singleton {
	INSTANCE
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值