什么是错的单身?[关闭]
-
01-07-2019 - |
解决方案
其他提示
有时它可以让你的代码的更紧密结合起单独的类正在refrerenced直接由名来自不同部分的你的代码。因此,举例来说,当你需要测试一些一部分代码并且引用一个单从一个不同的代码的一部分你不能轻易假的依赖与一个模拟对象。
没有什么本质上是错误的单独模式。它是一个工具,有时应该使用。
我还没有露出来单独作为多一些其他的海报,但是几乎所有的实现,我们看到(C#)可能已经实现与静态的课程/方法。我想你可能会争辩说,一个静态的类是一个执行单一模式,但这不是我已经看到。我已经看到人们建立和管理这些单独的课程/对象,当他们真正需要的是使用静态的关键词。
所以,我不会说的单一的模式是坏的。我会说它有点喜欢枪。我不认为枪支是坏的,但它们可以大多数肯定可以使用不当。
我认为,一个更合适的问题可能是:在什么情况下使用单一的模式不恰当的?或者你有什么看出,使用一个单独的,不应该。
基本上是一个单独的方式有静态的数据和假装这真的不是静态的。
当然,我使用它,但尽量不要滥用它。
一个最基本的问题与原GoF的设计是一个事实,即析构不受到保护。任何人都有一个参考单一实例是免费的摧毁的单例。
见约翰*Vlissides更新的"杀死一个单独的"在他的书中"孵化模式"(亚马逊的链接).
干杯,
Rob
没什么不对的一个单独的本身,以及作为一种模式,它填补了一个至关重要的作用,在认识到需要对某些对象仅要创建一个单一的时间。
什么这是经常使用的是一种委婉的说法对全球变量为试图绕过全球变耻辱,而正是这种使用,本质上是错误的。如果一个全球性的可变恰好是正确的解决方案,使用单独不会改善。如果是(为是相当常见的)不正确使用全球变量,包裹在一个单独的不会让任何更正确的。
大多数单一的模式,我看到的写不写在线安全的方式。如果有书面的正确,他们可能是有用的。