您的位置:首页 > 其它

单件模式

2008-07-30 14:40 281 查看
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来生成类。只能用静态的方法。

静态方法里只能调用静态成员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: