using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SingleTon
{
public sealed class SingleObject
{
//公有字段
public string name;
//类似java的实现
private static object syncRoot = new Object();
//私有字段
private volatile static SingleObject uniqueObj;
private SingleObject(string name)
{
this.name = name;
}
public static SingleObject getInstance(string n)
{
if (uniqueObj == null)
{
//lock (typeof(SingleObject))
lock (syncRoot)
{
uniqueObj = new SingleObject(n);
}
}
return uniqueObj;
}
//private static readonly SingleObject instance = new SingleObject();
//private SingleObject() { }
//public static SingleObject Instance
// {
// get
// {
// return instance;
// }
// }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SingleTon
{
class Program
{
static void Main(string[] args)
{
SingleObject s = SingleObject.getInstance("a");
SingleObject s1 = SingleObject.getInstance("b");
System.Console.WriteLine(s.name);
System.Console.WriteLine(s1.name);
System.Console.ReadLine();
}
}
}