【Java进阶】单例设计模式
什么是设计模式?
- 设计模式就是具体问题的最优解决方案(是一种经验)
单例设计模式
单例设计模式指的是:一个类只有一个对象(这个类只允许创建最多一个对象),哪怕是创建多次也是同一个对象,类似于Windows操作系统的任务管理器,无论打开多少次,但是都会只有一个窗口。
- 单例设计模式的代码步骤:
- 将构造方法私有
- 提供一个静态的变量,用于保存该类的对象(根据创建对象的时机不同,可以分为懒汉和饿汉)
- 提供一个静态的方法,用于让调用者通过方法获取对象
饿汉式单例设计模式
在类一加载的时候就创建好对象了,这种单例设计是最常用的,也是最简单的。
1 | package com.xlkh.demo04_designMode; |
饿汉式优点
非常安全,即使在多线程下也能保证安全。
饿汉式缺点
非常安全,即使在多线程下也能保证安全。
懒汉式单例设计模式
懒汉式的优缺点:
- 优点:
- 可以让创建对象饿时机尽可能晚,从而节约程序内存。
- 缺点:
- 多线程的时候,不安全(一个类可以有好几个对象)。
- 程序运行的性能较差。
1 | package com.xlkh.demo04_designMode; |
懒汉式获取对象的bug演示
在使用多线程的情况下,违背了单例设计模式只有一个对象的原则。

Summary:
最重要的是记住那三步:
- 首先将
构造方法设为私有-防止调用者胡乱造对象。- 创建
私有的静态变量,用于保存类的对象。- 创建
公共的静态方法,让调用者通过类名.方法名获取对象。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.


