美文网首页
5.单例模式-懒汉式-同步方法

5.单例模式-懒汉式-同步方法

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

步骤

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

优点

解决了线程不安全问题 。

缺点

每次调用方法都会同步,降低了效率。【这个也没用,看看就好。】

代码实现

(只在公共方法上加了一个同步关键字 synchronized)

package yuan.com.dp.singleton;

/**
 * 测试类
 */
class Test_SingleTon_4 {
    public static void main(String[] args) {
        SingleTon_4 ton_1 = SingleTon_4.getSingleTon_4();
        SingleTon_4 ton_2 = SingleTon_4.getSingleTon_4();
        System.out.println(ton_1 == ton_2);
    }
}

/**
 * 单利模式-懒汉式-同步方法
 */
public class SingleTon_4 {
    /**
     * 1.单利模式 防止其他类中new,所以private修饰
     */
    private SingleTon_4() {
    }


    /**
     * 2.类中创建私有对象
     */
    private static SingleTon_4 singleTon_4 = null;

    /**
     * 3.对外提供一个静态方法来创建对象
     *
     * @return singleTon_4实例
     * 相较于前一版多加了个synchronized
     */
    public synchronized static SingleTon_4 getSingleTon_4() {
        //这里是精华,使用到了懒加载,其实优化代码就是尽量懒加载,不过懒加载也要视情况而定。
        if (singleTon_4 == null) {
            singleTon_4 = new SingleTon_4();
        }
        return singleTon_4;
    }
}

相关文章

  • Android设计模式(单例模式)

    目录 1.单例模式简介 2.单例模式关键点 3.单例模式UML图 4.单例模式的实现方式饿汉式懒汉式同步锁懒汉式D...

  • 单例模式Java篇

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

  • 单列模式的多种实现方式

    懒汉模式 饿汉模式 双重同步锁单例模式 volatile+双重同步锁单例模式 静态的工厂方法 枚举

  • 5.单例模式-懒汉式-同步方法

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

  • kotlin实现单例模式

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

  • Singleton 单例模式

    饿汉式单例模式 饿汉式单例模式 通过静态代码块增加异常处理 懒汉式单例模式 存在线程安全问题 懒汉式单例模式 解决...

  • 单例(Singleton)

    单例设计模式 单例模式的创建 饿汉式1 饿汉式2 懒汉式 优化后的懒汉式(线程安全): 饿汉式与懒汉式区别 单例模...

  • 2018-05-14

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

  • 实用设计模式-Java单例模式

    常见单例模式 1.饿汉式 测试用例 2.懒汉式 3. Double Check 懒汉式 4.静态内部类 5.枚举实...

  • 单例模式

    单例,全局只有一个实例 单例模式可以分为懒汉式和饿汉式: 懒汉式单例模式:在类加载时不初始化。 饿汉式单例模式:在...

网友评论

      本文标题:5.单例模式-懒汉式-同步方法

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