1

单例类的概念让我抓狂。什么是单例类,为什么要使用它?是否有必要使用单例类?我实际上对单例类了解不多,只是“它是一个对象只初始化一次的类”。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 中的单例类或单例概念。请帮帮我。提前致谢。

4

2 回答 2

2

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

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

于 2013-03-16T10:10:26.293 回答
1

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

示例:如果你的类有一个 int 索引。查看 obj3 中 index 的值

        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

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

静态类只允许静态方法。

于 2013-03-16T10:17:38.867 回答