单例模式只有饿汉式和懒汉式吗?这几种单例模式你见过吗

设计模式之单例模式-单例模式的几种实现方式及小案例

本文来源:凯哥Java(wx:kaigejava)

单例模式有几种?饿汉式、懒汉式。这两种是最常见的。还有几种是对其扩展的。具体如下:

我们可以从上图看到,共有六种方式。

其中在懒汉式基础上扩展的有两种。即:加锁的懒汉式及双重判断加锁的懒汉式

还有一种是使用内部类实现的。即:内部静态类的

最后一种是比较少见的。使用枚举的。

我们来看看每种方式代码都怎么写。

联系凯哥--》公众号:凯哥Java(kaigejava)

 

凯哥个人博客:www.kaigejava.com

懒汉式:

我们来看看懒汉式优缺点:

饿汉式:

饿汉式的优缺点及适用场景:

加锁的懒汉式:

再来看看加锁懒汉式的由来:

双重判断加锁的懒汉式:

有了加锁的懒汉为什么还会有加锁双重判断的呢?这种由什么优缺点呢?请看下图:

内部静态类是实现的懒汉式:

这种模式的有缺:

使用枚举:

优点缺点:

我们使用单例模式做个小案例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯哥Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值