网站首页 > 基础教程 正文
背景
单例模式在软件开发过程中经常遇到,说白了就是一个唯一实例存在于系统中,这个类只产生一份在内存里面,其他需要这个类的操作,不能自己去随意实例化类,而由单例类自己管理和生成自己,释放自己。
应用场景
1.比如操作excel.操作文件等。
2.或一个复杂渲染画面的类都将是一个单一不允许被并发操作的类。
3.数据库操作。
4.账号生成器等。
实例讲解
1.第一步:
要取得这样一个实例第一步,是判断他是否存在。
if (instance == null)
如果存在了,就返回内存的实例。
2.如果为空,就开始加锁,创建对象,防止别人也同时创建对象。
lock (lockObject) {
那么这时候还要在判断对象是否为空,为什么?
因为在你加锁的过程的同时,别人可能已经创建了对象,这一步判断对象是否被创建,至关重要。加锁是会等待的。
3.创建实例
instance = new SingletonPattern1();
这一块可以扩展,直接创建类,也可以创建借口,或直接载入dll等
单例模式是我们学习设计模式的第一课,这个代码已经无懈可击了,
猜你喜欢
- 2024-12-28 CSnakes:在.NET项目中嵌入Python代码的工具
- 2024-12-28 巧用泛型设计模式,提升代码质量新高度
- 2024-12-28 巅峰对决!Spring Boot VS .NET 6 巅峰对决之干碎龙王短剧全集完整版第5集
- 2024-12-28 基于C#开发的物联网设备通讯协议客户端终身开源免费
- 2024-12-28 C# Flurl 库浅析(一) c#folderbrowserdialog
- 2024-12-28 C# Lazy的缺点 c#的介绍
- 2024-12-28 微服务——webapi实现,脱离iis,脱离tomcat
- 2024-12-28 231.C# 跨平台服务开发 c++跨平台开发
- 2024-12-28 C# 和 .NET 开发的 10 种基本模式
- 2024-12-28 基于C# 开发的物联网设备通讯协议客户端
- 01-09Oracle数据库面试题汇总
- 01-09Oracle AWR解析-Report Summary
- 01-09想要成为数据分析师,这些Excel必备知识点你得掌握
- 01-09java开发中常用Oracle函数实例总结比较,当真不少
- 01-09DriveWorks其实是这么回事
- 01-09EXCEL做数据分析,学会这些就入门了
- 01-09一场pandas与SQL的巅峰大战(六)
- 01-09Oracle数据库知识 day01 Oracle介绍和增删改查
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)