单例模式,顾名思义,就是一个类只能new一个实例,特点主要有:
1、私有化构造函数
2、提供一个私有的静态的类型变量,比如以下提供的是一个私有的静态的Person类型变量;
3、提供一个公共的静态的方法,用来返回上面的变量,这个变量指向的是单例模式里面的有且仅有一个的实例;
- class Person
- {
- public string Name { get; set; }
- private static Person p; //声明一个私有静态变量
- //私有构造函数,只能在当前类里面使用
- private Person()
- {
- this.Name = "小明";
- }
- //公共静态方法,返回一个指向特定对象的变量
- public static Person GetSingle()
- {
- //if判断使得永远不会重新new第二个Person对象
- if (p==null)
- p = new Person();
- return p;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Person p = new Person(); //错误!不能new ,因为不能调用Person类里面的私有构造函数
- Person p0 = Person.GetSingle();
- Person p1 = Person.GetSingle();
- Person p2 = Person.GetSingle();//p0、p1、p2指向的都是同一个对象
- Console.WriteLine("{0}--{1}--{2}", p0.Name, p1.Name, p2.Name);//输出 小明--小明--小明
- Console.ReadKey();
- }
- }
复制代码
|