有人可以解释一下我的单身模式吗?在c#please,它有什么用?
答案 0 :(得分:4)
单例是一个只允许创建自身一个实例的类。
C#中单身人士的一个例子。
public class Singleton
{
private static Singleton _default;
public static Singleton Default
{
get
{
if (_default == null)
_default = new Singleton();
return _default;
}
}
private Singleton()
{ }
public void SomeMethod()
{
// Do something...
}
}
然后您可以像访问它一样访问它:
Singleton.Default.SomeMethod();
答案 1 :(得分:3)
单例模式是一个只允许创建自身一个实例的类。如果有人试图创建另一个实例,他们只会获得对第一个实例的引用。
由于人们倾向于将其视为上帝对象,他们只是抛弃各种各样的东西,并且因为它可能使单元测试变得复杂,所以很受嘲笑。但是如果你知道你正在做什么,它就有它的位置,就像goto
和函数的多个返回点一样: - )
答案 2 :(得分:2)
public class SingleTonSample
{
private static SingleTonSample instance;
public static SingleTonSample Instance
{
get
{
return instance?? new SingleTonSample();
}
}
private SingleTonSample()
{
/// todo
}
public void Foo()
{
///todo
}
}
public class UseSingleton
{
public void Test()
{
SingleTonSample sample = SingleTonSample.Instance;
sample.Foo();
}
}