什么是单身人士班?是否在c#中使用,如果是,那么在哪里以及为什么?

时间:2013-03-16 10:05:39

标签: c# asp.net .net oop

单身人士的概念让我很难过。实际上是单例类,为什么使用它?有没有必要使用单例类?我实际上对单例类不太了解,只是“它是一个只对象初始化一次的类”。 static和readOnly ... blaw blaw ...单身类的概念究竟是什么?每当我研究单身人士课时,我都会看到这个代码。

public class Singleton
{
    private static Singleton instance;

    private Singleton() { }

    public static Singleton Instance
    {
        get
        {
            if (instance == null)
                instance = new Singleton();
            return instance;
        }
    }

    //instance methods
}

请帮助我理解OOP中的单例类或单例概念。请帮帮我。提前谢谢。

2 个答案:

答案 0 :(得分:2)

单例模式的想法是只存在一个实例。

使用的一个示例是您拥有使用远程服务的许可,但任何时候只能使用有限数量的查询。单例的客户端可以自由地发出请求,而不必担心过多调用服务器的许可证影响,并且单例管理将操作放入队列并确保满足许可条款。而且因为只能有一个单身人士,所以你肯定永远不会违反许可条款。

答案 1 :(得分:1)

单例模式是一种设计模式,它将类的实例化限制为一个对象。 当需要一个对象来协调整个系统的操作时,这非常有用。

示例:如果您的类具有int索引。查看obj3中索引的值

        NonSingleton obj1 = new NonSingleton();//obj1.index = 0
        NonSingleton obj2 = new NonSingleton();//obj2.index = 0
        obj2.index = 11;
        NonSingleton obj3 = new NonSingleton();//obj3.index = 0


        Singleton obj1 = Singleton.Instance;//obj1.index = 0
        Singleton obj2 = Singleton.Instance;//obj2.index = 0
        obj2.index = 11;
        Singleton obj3 = Singleton.Instance;//obj3.index = 11

此外,单例允许访问单个创建的实例 - 该实例 (或者更确切地说,对该实例的引用)可以作为参数传递 其他方法,并视为普通对象。

静态类只允许使用静态方法。