设计模式之单例设计模式
  Hz28wUWsCFru 2023年11月01日 29 0

图片

1.1 基本概念

  • 在某些特殊场合中,⼀个类对外提供且只提供⼀个对象时,这样的类叫做单例类,⽽设计单例类的流程和思想叫做单例设计模式。

1.2 实现流程

  • 私有化构造方法,使用private关键字修饰。
  • 声明本类类型的引用指向本类类型的对象,并使用private static关键字共同修饰。
  • 提供公有的get方法负责将对象返回出去,并使用public static关键字共同修饰。

1.3 采用饿汉式实现

1.3.1 核心代码

图片

1.3.2 特点概述

  • 保证了多线程安全,执行效率比较高。
  • 类加载时创建对象,容易产生垃圾对象且浪费内存空间,没有达到延迟加载的效果。

1.4 采用懒汉式实现

1.4.1 核心代码

图片

1.4.2 特点概述

  • 调用方法才会创建对象,避免垃圾对象产生和内存空间的浪费,达到了延迟加载的效果。
  • 需要加锁才能保证多线程安全,加锁导致执行效率比较低。

1.5 采用双重锁校验实现

1.5.1 核心代码

图片

1.5.2 特点概述

  • 采用双重锁机制既能保证多线程安全,又能保证执行效率比较高,同时达到了延迟加载的效果。

1.6 采用静态内部类实现

1.6.1 核心代码

图片

1.6.2 特点概述

  • 只适用于静态域,不适用于实例域延迟初始化时使用。
  • 采用静态内部类来保证多线程安全和执行效率以及延迟加载,比双重锁校验式更加简单。

1.7 采用枚举实现

1.7.1 核心代码

图片

1.7.2 特点概述

  • 实现单例设计模式的最佳方式,保证多线程安全和执行效率,支持序列化机制,绝对防止多次实例的创建。

1.8 实际应用

  • Web应用中的配置对象,由于配置文件是共享资源,通常采用单例模式。
  • 网站或者App程序的计数器,通常也采用单例模式,便于进行同步。
  • 操作系统中的任务管理器和回收站,都是采用的单例模式。
    图片

更多精彩欢迎关注微信公众号《格子衫007》!

图片

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: Java学习三 下一篇: 1、ArrayList源码解析
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   110   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
Hz28wUWsCFru