|
|
1
8
它不存在也不可能存在。单件基本上需要
你需要自己把完整的单件衣服煮沸。不过,我非常怀疑这是如何有用的。当然,它并不是防止stackoverflow或内存错误的唯一目的。写作
好的
代码阻止了这一点。只有当您想让最终用户处理
相同的
一直都是实例。顺便说一下,如果没有单件模式,也可以做得很好。要么直接申报
而不是单身,而是寻找 inversion of control (依赖注射)。顺便说一句,春天也在这样做。他们不使用“纯”单件。这是他们做出的一个糟糕的选择。 参见: |
|
|
2
2
singleton并不能防止堆栈溢出,也不能确定用它能得到什么。 对于Java,想到的是Spring。默认情况下,您所写的每个SpringBean都是单例的。您可以在100个地方使用它,它们都将通过注入自动设置,并且所有100个引用都将指向同一个对象(即单例对象)。在Spring中设置项目时,只需遵循约定,就可以生成任何需要单例的类。 |
|
|
3
2
GoogleGuice是一个支持
注意用注释的类
|
|
|
4
1
也许不是你要找的,但这是我最喜欢的C单子模式版本。它是线程安全的,使用懒惰的实例化,不需要任何锁。写作也很轻松…不需要框架。;)
要获取对象实例:
|
|
|
5
1
在爪哇中,可以简单地使用枚举类型来实现这一点。您可以指定实例的数量,这样就可以选择不存在实例(也称为实用程序类)、一个实例(也称为单实例)或多个实例。
|
|
|
6
1
.NET 4.0具有 Lazy(T) Class ,它将以线程安全的方式在第一次访问时延迟初始化值。有很多例子 Lazy Initialization 话题。
另外,如果您正在使用
Unity
有一个
lifetime manager
您可以使用
|
|
|
8
0
单例模式背后的意图是“配置一次”。多次使用”。这通常用于共享上述答案之一中提到的任何类型的数据或资源。但启用任何类型的“管理”应用程序也很有用。(如果JMX是Java) 您有一个特定类的实例,可以多次使用。由于只有一个实例,通过适当地配置该实例,您可以在整个应用程序中反映配置更改。因此,singleton模式能够为应用程序启用“管理仪表板”。 Spring或Spring.net(Spring的.NET实现)对于配置和注入单例非常有用。同样的参数也适用于任何类型的依赖注入框架。您应该阅读有关依赖注入的一般信息,以充分利用其功能。跨多个JVM或集群的真正的单例通常难以创建和管理。可能需要工具支持。实际上,不需要创建和维护它。 别把单件和静力学混淆了!这个构造看起来很相似,但可能非常不同。现在我要自吹自擂了! Here 是一个链接,指向一篇关于静态方法的文章。 |
|
|
9
0
它既懒惰又多才多艺。根据需要定义构造函数。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |