美文网首页
6.单例模式-懒汉式-双重检查

6.单例模式-懒汉式-双重检查

作者: 测试员 | 来源:发表于2019-11-18 23:45 被阅读0次

步骤

1)单利模式 防止其他类中new,所以private修饰
2)类中创建对象----但是要在静态代码块中创建【并且用volatail修饰】
3)对外提供一个静态方法来创建对象【这一步要使用懒加载,并且双重验证保证多线程安全】

优点

线程安全;
延迟加载;
效率较高;

缺点

没有缺点,至于今天依然相对完美【2019.11.18】

代码实现

(实际开发就用它就完事了)

package yuan.com.dp.singleton;

/**
 * 测试类 其实应该用多线程来测试的这里测试 毫无意义,有点强迫症的感觉。
 */
class Test_SingleTon_5 {
    public static void main(String[] args) {
        SingleTon_5 ton_1 = SingleTon_5.getSingleTon_5();
        SingleTon_5 ton_2 = SingleTon_5.getSingleTon_5();
        System.out.println(ton_1 == ton_2);
    }
}
/**
 * 单利模式-懒汉式-双重检查
 */
public class SingleTon_5 {
    /**
     * 1.单利模式 防止其他类中new,所以private修饰
     */
    private SingleTon_5() {
    }


    /**
     * 2.类中创建私有对象volatile修饰
     */
    private static volatile SingleTon_5 singleTon_5 = null;

    /**
     * 3.对外提供一个静态方法来创建对象
     *
     * @return singleTon_5实例
     * 相较于前一版多加了个synchronized
     */
    public static SingleTon_5 getSingleTon_5() {
        //非常优秀的逻辑处理,解决了多线程问题的同时又一定程度上解决了安全问题。
        if (singleTon_5 == null) {
            synchronized (SingleTon_5.class){
                if(singleTon_5 == null){
                    singleTon_5 = new SingleTon_5();
                }
            }
        }
        return singleTon_5;
    }
}


相关文章

  • 2018-05-14

    单利设计模式 懒汉式 单例模式 饿汉式 单利模式 懒汉式与饿汉式的区别: 双重锁式 单例模式 (DCL )

  • kotlin实现单例模式

    1.懒汉式实现单例模式 2.线程安全懒汉式实现单例模式 3.双重校验懒汉式实现单例模式 4.静态内部类方式实现单例模式

  • 项目实战—那些年常用的单例模式

    常见的单例模式:饿汉式、懒汉式、双重检查锁模式、静态内部类实现单例模式、枚举单例模式,本文重点是在项目中如何实现上...

  • 设计模式小结

    单例模式 单例模式主要包括懒汉式、饿汉式、双重检查锁、静态内部类、枚举类。注意的点:构造方法为private, 变...

  • 尚学堂260课到289课23种设计模式

    单例模式_应用场景_饿汉式_懒汉式 262课单例模式_双重检查锁式_静态内部类式 270课_适配器模式_对象适配器...

  • Kotlin 的单例模式

    Kotlin 的单例模式(5种) Kotlin 的5种单例模式: 饿汉式 懒汉式 线程安全的懒汉式 双重校验锁式 ...

  • Java设计模式一--单例模式

    一、单例模式单例模式主要分为饿汉式、懒汉式(非线程安全、线程安全、双重检查)、静态内部类、枚举。1.饿汉式 2.懒...

  • Java23种设计模式之「单例模式」

    单例模式 之 holder 模式 (推荐) 单例模式 之 饱汉模式(懒汉模式) 单例模式 之 双重锁检查 (Dou...

  • 6.单例模式-懒汉式-双重检查

    步骤 1)单利模式 防止其他类中new,所以private修饰2)类中创建对象----但是要在静态代码块中创建【并...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

网友评论

      本文标题:6.单例模式-懒汉式-双重检查

      本文链接:https://www.haomeiwen.com/subject/dmpiictx.html