单身模式

时间:2010-11-01 08:09:22

标签: c#

  

可能重复:
  What is a singleton in C#?

有人可以解释一下我的单身模式吗?在c#please,它有什么用?

3 个答案:

答案 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();

http://en.wikipedia.org/wiki/Singleton_pattern

答案 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();
    }
}