当前位置:网站首页>单例模式的理解
单例模式的理解
2022-06-29 08:17:00 【amateur12】
三私一公
私有的静态变量(保存类的实例)
当函数执行完毕后,静态变量不会消失
静态变量只会被初始化一次
私有的构造函数(防止类外实例化)
私有的克隆函数(防止通过克隆生成对象)
公共的静态方法(通常命名为getInstance),返回唯一实例的一个引用(调取这个类相当于一个接口)
解决的是如何在整个项目中创建唯一对象实例的问题
确保一个类最多只有一个实例,并提供一个全局访问点
它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用
因为每次打开和关闭数据库都是对数据库的一种极大考验和浪费
优点:
避免过多的new操作消耗大量的资源,解决内存开销
可以通过一个类来全局控制某些配置信息
同样也可以美观代码
分两种类型:饿汉式和懒汉式
饿汉式:在类加载时已经创建好该单例对象,等待被程序使用
懒汉式:在真正需要使用对象时才去创建该单例类对象
懒汉式如何保证只创建一个对象
Double Check(双重校验) + Lock(加锁)
如果没有实例化对象则加锁创建,如果已经实例化了,则不需要加锁,直接获取实例
饿汉式和懒汉式的选用
在开发中如果对内存要求不高,使用饿汉式写法,因为简单不易出错,且没有任何并发安全和性能问题
如果对内存要求非常高,那么使用懒汉式写法,可以在特定时候才创建该对象
边栏推荐
- Is it safe for the top ten securities companies to open accounts? Is it reliable?
- 2022春夏系列 KOREANO ESSENTIAL重塑时装生命力
- 各种级数(调和、几何)总结
- 工作好多年,回忆人生--高中三年
- PaddleNLP通用信息抽取模型:UIE【信息抽取{实体关系抽取、中文分词、精准实体标。情感分析等}、文本纠错、问答系统、闲聊机器人、定制训练】
- NLP annotation tool: label studio realizes multi-user collaborative marking
- P6776-[noi2020] surreal tree
- 新版付费塔罗牌测算源码 (附带搭建教程)
- Sorting out easily confused words in postgraduate entrance examination English 【 flash 】
- 启牛学堂让开的证券账户是真的安全靠谱吗?
猜你喜欢

The sixth season of 2022 perfect children's model Qingyuan competition area audition came to a successful conclusion

随心玩玩(三)Mirai框架QQ机器人

Summary of various series (harmonic, geometric)

2022年7月(软考高级)信息系统项目管理师认证招生简章

对话| 数字时代,隐私计算的发展前景与挑战

CDGA|交通行业做好数字化转型的核心是什么?
![[untitled]](/img/6e/5dd5dcff89a74f7d367c9186a77268.png)
[untitled]

实战回忆录:从Webshell开始突破边界

Swift中@dynamicMemberLookup和callAsFunction特性实现对象透明代理功能

New paid Tarot calculation source code (with building tutorial)
随机推荐
The final of the sixth season of 2022 perfect children's model Hefei division came to a successful conclusion
2022春夏系列 KOREANO ESSENTIAL重塑时装生命力
对话| 数字时代,隐私计算的发展前景与挑战
The difference and usage of JS for in loop and for of loop
特征选择:最大信息系数(MIC;Maximal Information Coefficient)【用于衡量两个变量X和Y之间的关联程度,线性或非线性的强度,常用于机器学习的特征选择】
Matlab usage
Open an account to buy funds. Is it safe to open an account through online funds-
Speech synthesis: overview [generation task of unequal length sequence relation modeling]
Mutex mutex
语音标注工具:Praat
Is it safe for the top ten securities companies to open accounts? Is it reliable?
[untitled]
表格背单词的方法
Voice processing tool: Sox
P6772 [NOI2020] 美食家(矩阵快速幂)
Transformer details
Standard | China payment and clearing Association releases the first privacy computing financial specification
目标跟踪【单目标跟踪(VOT/SOT)、目标检测(detection)、行人重识别(Re-ID)】
Set up Jenkins environment and automatically associate packaged project jars for automatic release
ThreadLocal thread variable