单例设计模式详解——定义、适用场景和基本应用

本文详细介绍了单例设计模式,包括其定义、适用场景、优点和潜在问题。讨论了单例模式在计数器、配置管理和数据库连接池等场合的应用,并强调了线程安全、延迟加载以及如何处理序列化和反射攻击的重要性。同时,文章探讨了双重检查锁和静态内部类等实现单例的机制,并提到了反编译学习、内存管理和多线程调试等实用技能。此外,还提及了单例模式与其他设计模式如工厂模式、享元模式的关系。
摘要由CSDN通过智能技术生成

一、定义与类型

定义:保证一个类仅有一个实例,并提供一个全局访问点

类型:创建型

二、单例适用场景

》想确保任何情况下都绝对只有一个实例

单服务情况下网站的计数器使用单例

集群的情况下共享的计数器

应用的配置使用单例  线程池的设计

数据库的连接池也使用单例

三、单例的优点

》在内存里只有一实例,减少了内存开销。一个对象需要频繁创建和销毁,无法优化

》可以避免对资源的多重占用。对同一个文件的写操作

》设置全局访问点,严格控制访问。对外无法new对象,只能通过提供的接口提供访问

缺点;

》没有接口,不能扩展

四、单例重点

》私有构造器。

》线程安全。多线程时的应用。

》延迟加载。只有使用时才创建

》序列化和反序列化安全。一旦序列化和反序列化,会破坏单例模式

》反射。防止反射攻击。

五、单例设计方案中的使用的机制

单例实现方案中使用的双重检查锁内存机制

静态内部类的实现方案,基于类的初始化、延迟加载方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值