设计模式之单例模式(5种实现方式)

1.什么是单例模式

单例模式,属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例。

实现步骤:

  1. 私有化构造方法
  2. 静态化实例对象
  3. 提供一个静态对象返回方法

1.1 饿汉模式

  • 优点:没有加锁,执行效率会提高。
  • 缺点:类加载时就初始化,浪费内存。

1.2 懒汉模式

  • 优点:第一次调用才初始化,避免内存浪费。
  • 缺点:必须加锁 synchronized 才能保证单例,但加锁会影响效率。

注:synchronized 关键字用法 https://www.cnblogs.com/fnlingnzb-learner/p/10335662.html

1.3 静态内部类

  • 优点:兼顾了懒汉模式的内存优化(使用时才初始化)以及饿汉模式的安全性(不会被反射入侵)。
  • 缺点:需要两个类去做到这一点,虽然不会创建静态内部类的对象,但是其 Class 对象还是会被创建,而且是属于永久带的对象。

注:静态内部类只有在被调用时才会被加载

  • 1.4  双重检查锁

  • 这种方式采用双锁机制,安全且在多线程情况下能保持高性能。

1.5 枚举

注:枚举类型使用 https://blog.csdn.net/newbie_907486852/article/details/81027512

参考:

https://www.runoob.com/design-pattern/singleton-pattern.html

https://blog.csdn.net/weixin_42152604/article/details/87915944

https://blog.csdn.net/weixin_42762133/article/details/82890555

https://www.cnblogs.com/fnlingnzb-learner/p/10335662.html

https://blog.csdn.net/newbie_907486852/article/details/81027512

附测试类

 

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91469 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月23日
下一篇 2020年6月23日

相关推荐