using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 饿汉模式 { //单例模式(饿汉模式) public class SingleCase { //申明一个字段 public string Name { get; set; } //1、创建一个私有的构造函数,证明不能实例化 private SingleCase() { } //2、自行创建一个实例化 private static SingleCase singleCase = new SingleCase();//饿汉模式 //3、创建一个可访问的方法 public static SingleCase GetInstence() { return singleCase; } public void Show() { Console.WriteLine("Hello:"+Name); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 双重验证_多性能并发操作_ { public class SingleCase { //定义一个锁资源 private static readonly object obj = new object(); //1、创建一个私有的构造函数 private SingleCase() { } //2、自行创建一个类的实例,static代表只能创建一个实例 private static SingleCase SingleCase1 = null; //3、提供外界可访问的方法 public static SingleCase GetRond() { //第一重验证 if (SingleCase1 == null) lock (obj) { //第二重验证 if (SingleCase1 == null) { SingleCase1 = new SingleCase(); } } return SingleCase1; } public string Name { get; set; } } }
{ public class SingleCase { //1、创建一个私有的构造函数,表示这个类不能被实例化 private SingleCase() { } //2、自行创建一个类的实例,static代表只能创建一个实例 private static SingleCase SingleCase1 = null; //3、提供外界可访问的方法 public static SingleCase GetRond() { if (SingleCase1 == null) { SingleCase1 = new SingleCase(); } return SingleCase1; } public string Name { get; set; } } }