常用设计模式之单例设计模式

代码揽虹客
• 阅读 1251

常用设计模式之单例设计模式

小伙伴们对于单例设计模式了解有多少呢?

懒汉试、饿汉式、还有吗?双重判断......

今天我来带大家重新认识一下7种单例设计模式,没错,你没看错,是7种!

第一种,饿汉式单例设计模式

饿汉式是老熟人了,不多bb,直接上码!

常用设计模式之单例设计模式

  • 类加载到内存后,就实例化一个单例,JVM保证线程安全
  • 简单实用,推荐使用
  • 唯一缺点就是,不管是否使用,类加载时就完成实例化

第二种,懒汉式单例设计模式

也是老熟人了,直接上码!

常用设计模式之单例设计模式

  • 解决了饿汉式的一点缺点,但却引入了线程安全问题

第三种,synchronized版本一单例设计模式

常用设计模式之单例设计模式

  • 解决了第二种的线程安全问题,但是带来了效率下降的问题

第四种,synchronized版本二单例设计模式

常用设计模式之单例设计模式

  • 尝试将方法锁换成代码块锁,想要用减少锁的力度来换取一点效率上的提升,但是却又引入了线程安全的问题

第五种,双重判断单例设计模式

常用设计模式之单例设计模式

  • 利用双重判断,解决了线程安全的问题

越来越怀念单例最初的版本.................

第六种,静态内部类单例设计模式

常用设计模式之单例设计模式

  • JVM保证单例,并且加载外部类时不会加载内部类,又实现了懒加载

漂亮!完美!你以为这样就结束了吗?下面有请我们的神级版本第七种,枚举单例

第七种,枚举单例

常用设计模式之单例设计模式

  • 不仅解决了线程同步,而且可以防止反序列化

我MingLog愿称你为最强单例

看完这些,是不是让你对单例设计模式有了更深层次的认知呢,学废了嘛,学废了就点个赞再走吧
常用设计模式之单例设计模式

点赞
收藏
评论区
推荐文章
3A网络 3A网络
3年前
Golang 常见设计模式之单例模式
之前我们已经看过了Golang常见设计模式中的装饰和选项模式,今天要看的是Golang设计模式里最简单的单例模式。单例模式的作用是确保无论对象被实例化多少次,全局都只有一个实例存在。根据这一特性,我们可以将其应用到全局唯一性配置、数据库连接对象、文件访问对象等。Go语言实现单例模式的方法有很多种,下面我们就一起来看一下。饿汉式饿汉式实现单例模式非
Wesley13 Wesley13
3年前
java 23种设计模式(五、单例模式)
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。单例模式的结构  单例模式的特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。  饿汉式单例类publicclassEagerSingleton
Wesley13 Wesley13
3年前
java中饿汉与懒汉的故事(单例设计模式)
java中的单例设计模式关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一
Java单例模式7种写法,你是不是有用错过?
单例大家都很清楚的知道作用,也不多说,主要是在不同的情况下注意事项;单例模式多种写法1、饿汉式可用//饿汉式languageprivatefinalstaticSingletonINSTANCEnewSingleton();privateSingleton(){}publicstaticSingleton
海军 海军
4年前
JavaScript设计模式之单例模式
<sectionid"nice"datatool"mdnice编辑器"datawebsite"https://www.mdnice.com"style"fontsize:16px;color:black;lineheight:1.6;wordspacing:0px;letterspacing:0px;word
红烧土豆泥 红烧土豆泥
4年前
创建型模式之单例设计模式
什么是单例设计模式?顾名思义,只有一个实例。单例模式它主要是确保一个类只有一个实例,并且可以提供一个全局的访问点。废话少说,直接上干货了单例模式之饿汉式所谓饿汉式,顾名思义,“它很饿”。所以说,它一旦被加载进来,就会直接实例化一个对象。例如:languageclassSingleton{privatestaticfin
Wesley13 Wesley13
3年前
JAVA设计模式之单例设计模式
    单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。  在JAVA中实现单例,必须了解JAVA内存机制,JAVA中实例对象存在于堆内存中,若要实现单例,必须满足两个条件:  1.限制类实例化对象。即只能产生一个对象。
Wesley13 Wesley13
3年前
C#单例
单例模式:步骤:1.定义静态私有对象2.构造函数私有化3.定义一个静态的,返回值为该类型的方法,一般以Getinstance/getInit为方法名称单例模式有懒汉和饿汉,最好使用饿汉1.饿汉式先实例化publicclassSingleton{privatestati
Wesley13 Wesley13
3年前
(面试常问)4种单例设计模式的总结(内含代码以及分析)
单例设计模式:  单例模式,是一种常见的软件设计模式.在它的核心结构中只包含了一个被称为单例的特殊类.通过单例模式可以保证系统中只有该类的一个实例对象.优点:  实例控制:单例模式会阻止其它对象实例化其自己的单例对象的副本,从而确保所有对象都访问的是唯一的实例   灵活性:因为类控制了实例化过程,所以类可以很灵活的更改实
Wesley13 Wesley13
3年前
Java设计模式:Singleton(单例)模式
概念定义Singleton(单例)模式是指在程序运行期间,某些类只实例化一次,创建一个全局唯一对象。因此,单例类只能有一个实例,且必须自己创建自己的这个唯一实例,并对外提供访问该实例的方式。单例模式主要是为了避免创建多个实例造成的资源浪费,以及多个实例多次调用容易导致结果出现不一致等问题。例如,一个系统只能有一个窗口管理器或文件系统,一个程
Wesley13 Wesley13
3年前
23种设计模式(1):单例模式
定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:!23种设计模式(1):单例模式第1张|快课网(http://static.oschina.net/uploads/img/201407/05200605_0dij.gif"23种设计模式(1):单例模式
代码揽虹客
代码揽虹客
Lv1
找一方净土,守一份剩下流年,看一段岁月安好。
文章
7
粉丝
0
获赞
0