【设计模式】单例模式
单例模式 单例模式: 保证一个类仅有一个实例,并提供一个全局访问点。 将构造函数放到private里,并提供全局访问点(static静态函数,返回类内部唯一构造实例) 为什么用静态函数,静态成员变量? 调用类里的函数需要先构造对象,有对象才能调用类内成员方法。但这个方法肯定不适合单例模式。 而另一种方法就是静态函数,可以使用类名直接调用。而静态函数只能调用静态成员方法。 上述代码属于 懒汉模式 :在第一次用到类实例的时候才会去实例化,访问量较小时, 采用懒汉式,以时间换空间。 分析: 最内层的判断,保证单线程肯定智能创建一个对象。 外面的锁,保证创建的过程是原子操作。 在外面的判断,保证只有第一次回加锁,后面就会重复加锁,再判断。 还有一个 饿汉式: 在单例类定义的时候就进行实例化。访问量较大、线程较多时, 采用饿汉式,以空间换时间。 线程安全,因为一开始就实例化了。 来源: https://www.cnblogs.com/LampsAsarum/p/12243514.html