“Head First 设计模式“ :单例模式
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。类图如下:代码实现如下:public class Singleton { // 用静态变量来记录唯一的实例 privat
千家信息网最后更新 2026年11月01日“Head First 设计模式“ :单例模式
单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。类图如下:
代码实现如下:
public class Singleton { // 用静态变量来记录唯一的实例 private static Singleton instance; /** * 构造方法私有化,防止被创建,只能类内部能使用构造器 */ private Singleton() { } /** * 实例化对象,并返回这个对象 * @return */ public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } // 其他的方法}并发环境下上面的代码会出现问题的,我们进一步修改,如下:
/** * 实例化对象,并返回这个对象 * synchronized加锁,可能对性能有影响哦 * @return */public static synchronized SingletonThread getInstance() { if (instance == null) { instance = new SingletonThread(); } return instance;}上面例子对性能很大的影响,那我们可以进一步改善吗?
- 如果getInstance()的性能对应用程序不是很关键,就什么都别做,不要改善了
- 使用"急切"创建实例,而不用延迟实例化的做法,代码如下:
public class Singleton3 { // 静态属性,类加载时初始化的,JVM保证唯一 private static Singleton3 instance = new Singleton3(); private Singleton3() { } public static Singleton3 getInstance() { return instance; }}
- 使用"双重检查加锁",在getInstance()中减少使用同步,不适合JDK1.4之前的版本,代码如下;
public class Singleton4 { // 用静态变量来记录唯一的实例, volatile多线程环境下保用最新的值 private volatile static Singleton4 instance; /** * 构造方法私有化,防止被创建,只能类内部能使用构造器 */ private Singleton4() { } /** * 实例化对象,并返回这个对象 * @return */ public static Singleton4 getInstance() { if (instance == null) { synchronized (Singleton4.class) { if (instance == null) { instance = new Singleton4(); } } } return instance; } // 其他的方法}注意:有多个类加载器时,单利可能产生多个哦,这个要注意哦。
单例模式的应用场景:
- 应用中某个实例对象需要频繁的被访问。
- 应用中每次启动只会存在一个实例。如账号系统,数据库系统。
实例
对象
代码
方法
应用
性能
静态
模式
变量
多个
环境
系统
构造器
进一
保证
影响
私有
很大
频繁
急切
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
花魁咖啡
小米移动互联网科技园
中关村互联网 科技集团
湖南永感互联网科技有限公司
互联网和科技技术
互联网科技公司华为
互联网金融监管科技数据
互联网金融 科技
合肥互联网科技公司
狮子座互联网科技有限公司
深圳天众互联网科技公司
互联网科技logo
互联网科技小额贷款
四川狮子座互联网科技
老年人脱离互联网科技的作文
青岛中康互联网医疗科技有限公司
互联网企业和科技型企业
互联网科技的全部知识
科技大学互联网
南京欣网互联网络科技有限公司
山东特亿宝互联网科技有限公司
平安科技 互联网
长亮科技互联网金融
互联网科技公司有哪些
互联网科技类展会
青岛中康互联网医疗科技有限公司
深圳前海聚择互联网科技有限公司
高科技互联网套路
互联网公司高科技产品