关于c#中的单例模式
程序员文章站
2022-03-26 22:27:35
关于单例模式的一些问题c#中的单例模式单例模式是指在设计一个类时,保证在运行期间只有一个实例对象,因为过多相同的实例对象会占用内存空间。##举个例子1.声明一个静态的Class1类的变量来引用唯一的对象。2.创造私有的无参构造方法,使外部无法调用这个类的构造方法。3.创建静态的方法,创建此类唯一的对象。4.通过TempClass1 = new Class1();调用私有构造方法创建该实例。#单例模式的一些特点1.在类的内部创建一个该类的实例对象,并使用静态变量TempClass1引用该对...
关于单例模式的一些问题
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
上一篇: JavaScript 基础知识
下一篇: 搭了个快车