namespace ConsoleApplication1
{
public class SimpleDemo
{
//static 被静态修饰的变量,在内存中只有一份
public static SimpleDemo instance;
public static SimpleDemo Getinstance(string n)
{
if (instance == null)
{
instance = new SimpleDemo();
instance.name = n;//因为instance是SimpleDemo的实例,所以name是可以调出来的
}
return instance;
}
//..其他的还可以写其他的属性字段
public string name;
}
class Program
{
static void Main(string[] args)
{
SimpleDemo s6 = SimpleDemo.Getinstance("s6");
Console.WriteLine(s6.name);
SimpleDemo s2 = SimpleDemo.Getinstance("s2");
Console.WriteLine(s2.name);
//输出的结果都是s6,因为在开始运行到s6的时候,instance是未创建的,是空的;所以会创建一个新的实例,
//等到第二次去运行s2的时候,instance已经创建完成了,直接返回的还是s6的实例,
//无论创建多少的SimpleDemo的实例,返回的都是同一个值
//用处:思考了一下,感觉和修饰词Const一样,修饰了那个词,那个词的值就定了;只不过这里是可以让一个对象的值定了。
// 比如,超市一类物品属性值固定,就给这一类写个单例模式;
//单例模式,单例模式,就是这个类被实例化了一次,所有的属性就定了;不管你再实例化多少,结果还是同样的,
//实例再多还是"单例"
Console.ReadKey();
}
}
}
原文:https://www.cnblogs.com/ZkbFighting/p/9590368.html