【发布时间】:2012-02-26 08:37:28
【问题描述】:
我知道标准的单例模式如下:
原创
public class Singleton1
{
public static Singleton1 _Instance;
public static Singleton1 Instance
{
get
{
if (_Instance == null)
{
_Instance = new Singleton1();
}
return _Instance;
}
}
private Singleton1()
{
}
}
但似乎这段代码是不必要的。对我来说,您可以使用以下任一简单的设计模式来完成同样的事情:
版本 2
public class Singleton2
{
public static readonly Singleton2 Instance = new Singleton2();
private Singleton2()
{
}
}
版本 3
public class Singleton3
{
static Singleton3()
{
}
}
在我看来,版本 2 似乎是执行此操作的更好方法,因为它允许您传入(或不传入)参数但仍然有有限数量的实例。我的应用程序对延迟/性能非常敏感 - 这些模式中的任何一种都可以提高性能吗?
看起来虽然第一次访问每个对象的时间会更长,因为正在创建对象。此外,原来的似乎稍微慢了一点,因为每次其他东西访问它时,它都必须检查它的支持字段是否为空。
【问题讨论】:
标签: c# performance c#-4.0 singleton