单件模式
public sealed class SingleClass
{
static SingleClass oSingleClass=null;
static readonly object padlock = new object();
public static SingleClass GetSingleClass
{
get
{
lock (padlock)
{
if(oSingleClass==null)
{
oSingleClass = new SingleClass();
}
return oSingleClass;
}
}
这种方式的实现对于线程来说是安全的。我们首先创建了一个进程辅助对象,线程在进入时先对辅助对象加锁然后再检测对象是否被创建,这样可以确保只有一个实例被创建,因为在同一个时刻加了锁的那部分程序只有一个线程可以进入。这种情况下,对象实例由最先进入的那个线程创建,后来的线程在进入时(instence == null)为假,不会再去创建对象实例了。但是这种实现方式增加了额外的开销,损失了性能。
应该很好理解。不能使用new来生成类。只能用静态的方法。
静态方法里只能调用静态成员。