关于c#中单例模式的一些问题
作者:码农.拉格朗日 时间:2022-01-21 08:56:18
本文主要介绍了关于单例模式的一些问题,想学习C#单例模式的同学们可以看一看,还是有些帮助
c#中的单例模式
单例模式是指在设计一个类时,保证在运行期间只有一个实例对象,因为过多相同的实例对象会占用内存空间。
##举个例子
1.声明一个静态的Class1类的变量来引用唯一的对象。
2.创造私有的无参构造方法,使外部无法调用这个类的构造方法。
3.创建静态的方法,创建此类唯一的对象。
4.通过TempClass1 = new Class1();调用私有构造方法创建该实例。
#单例模式的一些特点
1.在类的内部创建一个该类的实例对象,并使用静态变量TempClass1引用该对象,田于变量应该禁止外界直接访问,因此使用private修饰,声明为私有成员。
2.类的构造方法使用 private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象。
3.为了 在类的外部能够获得类的实例对象,需要定义一个静态方法Class1Method(),用于返回该类实例TempClass1。
证明Class1只有一个实例对象
也就是说这两个变量是同时指向同一个对象的。
具体代码
private static Class1 TempClass1;
private Class1() { }
public static Class1 Class1Method()
{
if (TempClass1 == null)
{
TempClass1 = new Class1();
}
return TempClass1;
}
Class1 c1 = Class1.Class1Method();
Class1 c2 = Class1.Class1Method();
if(c1==c2)
{
Console.WriteLine("c1和c2的存储地址相同");
}
Console.ReadKey();
来源:https://blog.csdn.net/qq_45681515/article/details/109582835
标签:c#,单例模式
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
详解Java设计模式之抽象工厂模式
2022-09-29 17:00:34
spring boot项目打包成war在tomcat运行的全步骤
2023-12-17 19:20:36
字符串内存驻留机制详解示例
2023-09-24 04:09:32
Maven引入外部jar的几种方法(小结)
2022-11-10 01:35:30
DevExpress TreeList 常见问题解决方法
2022-07-15 18:16:54
Opencv光流运动物体追踪详解
2023-06-21 11:55:31
![](https://img.aspxhome.com/file/2023/4/91994_0s.jpg)
MyBatis Plus插件机制与执行流程原理分析详解
2021-10-09 20:53:48
![](https://img.aspxhome.com/file/2023/5/77155_0s.jpg)
SpringMVC的执行过程浅析
2021-05-31 20:51:11
![](https://img.aspxhome.com/file/2023/4/62074_0s.png)
Spring Boot 员工管理系统超详细教程(源码分享)
2022-04-18 13:32:26
![](https://img.aspxhome.com/file/2023/5/68565_0s.jpg)
Java8中Lambda表达式使用和Stream API详解
2022-04-27 13:25:23
java动态线程池的简单实现思路
2023-10-18 15:53:46
SpringBoot 配合 SpringSecurity 实现自动登录功能的代码
2023-07-22 04:58:22
![](https://img.aspxhome.com/file/2023/6/57626_0s.png)
新手初学Java流程控制
2023-08-23 08:12:34
![](https://img.aspxhome.com/file/2023/8/77108_0s.png)
springmvc与mybatis集成配置实例详解
2021-06-16 22:10:27
Spring占位符Placeholder的实现原理解析
2023-03-14 18:14:00
![](https://img.aspxhome.com/file/2023/5/66075_0s.png)
java ThreadPool线程池的使用,线程池工具类用法说明
2023-06-23 18:12:12
springcloud中Ribbon和RestTemplate实现服务调用与负载均衡
2022-06-30 14:58:45
![](https://img.aspxhome.com/file/2023/5/61585_0s.png)
Java基础知识精通块作用域与条件及switch语句
2022-12-21 17:50:07
C#实现跨线程操作控件方法
2023-06-30 13:47:39
Java反射机制详解
2023-05-20 11:09:47