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

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 设计模式
  • 时间:2019-08-22 07:38
  • 3854人已阅读
简介 设计模式之单例模式-单例模式的几种实现方式及小案例单例模式有几种?饿汉式、懒汉式。这两种是最常见的。还有几种是对其扩展的。具体如下:我们可以从上图看到,共有六种方式。其中在懒汉式基础上扩展的有两种。即:加锁的懒汉式及双重判断加锁的懒汉式还有一种是使用内部类实现的。即:内部静态类的最后一种是比较少见的。使用枚举的。我们来看看每种方式代码都怎么写。懒汉式:我们来看看懒汉式优缺点:饿汉式:饿汉式的优缺点

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

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

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


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

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


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

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

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

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

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

懒汉式:

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


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

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


饿汉式:

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


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

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


加锁的懒汉式:

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


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

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


双重判断加锁的懒汉式:

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


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

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


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

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


这种模式的有缺:

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


使用枚举:

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


优点缺点:

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


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


TopTop