我已经阅读了大量关于网络和堆栈的讨论,声称单身人士是邪恶的。 像: root-cause-of-singletons 和Why is Singleton considered an anti-pattern?Java Spring服务是单身吗?
我读到这样的评论“单身使代码复杂,疼痛重用和测试”。 我使用的是具有无状态单例的Spring服务的代码,我无法看到这些点在这里如何保存。
这样的服务是否也被认定为不好的做法,为什么?或者所有的辩论都只限于有状态的单身人士?
我已经阅读了大量关于网络和堆栈的讨论,声称单身人士是邪恶的。 像: root-cause-of-singletons 和Why is Singleton considered an anti-pattern?Java Spring服务是单身吗?
我读到这样的评论“单身使代码复杂,疼痛重用和测试”。 我使用的是具有无状态单例的Spring服务的代码,我无法看到这些点在这里如何保存。
这样的服务是否也被认定为不好的做法,为什么?或者所有的辩论都只限于有状态的单身人士?
你与Singleton设计模式,其患有的问题,谈到你提及物质混淆Spring的单身人士(普遍好事)。
Singleton模式假定存在引用单例对象的全局变量static
。它通常还会假定用于管理单例生命周期的许多样板代码(例如,懒惰地初始化它)。
Spring既不会让您实现Singleton模式,也不会在内部使用它。 Spring单例是通过声明创建的,并将它们连接在一起形成完整的对象图,包括循环依赖关系的解析。
(注释为答案可读性。)
单身本质上并没有邪恶,他们只是很容易误用。
如果你是不管理对象的单身性问题,甚至没有问题。
我不同意其他有关单身人士的状态;虽然它可以做错,但有许多单身模式的状态工作得很好,例如一个池。
春天的单身汉是有罪的,如果它是有状态的。无状态单是细:
邪恶只与有状态的单身人士 – ControlAltDel 2014-11-03 17:59:53
@ControlAltDel我不明白为什么这个问题是“主要是基于意见”。正如Marko所回答的那样,我指出的辩论显然是单身模式,并且与Spring的单身人士没有关系。 – tunetopj 2014-11-04 19:00:45