我的一个朋友最近在一次工作面试中被问到标准单例和单例单例之间的区别。我以前从未听说过这个词,简单的谷歌搜索不会返回任何有意义的结果。
我的朋友建议它是一个构造函数是公共的但所有成员都是静态的对象。这对我来说似乎有点傻,因为它只是一个根本不需要构造函数的静态对象。
有没有人对单例有更好的定义?与标准单例相比,它有用吗?
我的一个朋友最近在一次工作面试中被问到标准单例和单例单例之间的区别。我以前从未听说过这个词,简单的谷歌搜索不会返回任何有意义的结果。
我的朋友建议它是一个构造函数是公共的但所有成员都是静态的对象。这对我来说似乎有点傻,因为它只是一个根本不需要构造函数的静态对象。
有没有人对单例有更好的定义?与标准单例相比,它有用吗?
我想他们实际上是指“Monostate”。我不会详细介绍它们,因为它们现在很容易在 Google 上搜索(以及与 Singletons 的区别的讨论)。
但是,我会说 Monostates 往往具有至少所有相同的问题和 Singletons,应该尽可能避免(考虑其他方法,例如Parameterise From Above或依赖注入,在适当的情况下)。
我知道可以修改“单例”以支持 n 个实例,其中 n 是一个固定数字。但是,我了解到这被称为 multiplton 或 multiton(我忘记了确切的名称,但它与那个相似)。可能是面试官想要达到这样的程度,即您可以使用非常类似于 Singleton 模式的东西来实现对象的 n 个实例。但如果是这样的话,那就是一种尴尬的表达方式。
谷歌上恰好有一个“单例”(带引号),所以我将其解析为平台中立的 DotNet 框架中使用的单例,而不是“Java 单例”或“C++ 单例”。
对不起,无法抗拒:)
我以前从未听说过这个术语,但我想它是用来指代一个只允许创建一个实例的单例。(一般的单例不需要,它也可以给出有限数量的实例)。
要么是那个,要么是单声道的单例......