我之前使用Singletons进行全局类,如果它绝对必要,即记录,错误处理。但我现在正在使用不喜欢这些的单元测试!
我想问一个关于全局变量的基本问题。他们有什么意义?在需要时创建类的新实例有什么问题?
答案 0 :(得分:4)
你应该阅读这个SO帖子:What is so bad about Singletons?
就个人而言,我喜欢单身人士,例如日志记录,撤消/重做堆栈,本地化以及从一个显示列表分支到另一个显示列表分支的通知 - 当事件冒泡不是真正的选项时。
虽然他们并不总是理想的,但是无论一些纯粹主义者可能会说什么,单身人士肯定会有自己的位置,并且可以使开发变得更容易。答案 1 :(得分:3)
确实如此,有时单身人士会产生问题,没有他们就没有。
我试着给你一份关于这个问题的想法清单:
最严重的是,您的软件具有循环依赖性。如果您正在开发SOA架构,那么如果您不小心,它可能会非常快。
此外,单身人士通常会导致课程的紧密联系,这使得你作为一名考试工作真的很难。
如果您正在处理一个大项目,并且另一个类可以获得Singleton更改的实例,则必须更改大量代码。这也可以在没有单身人士的情况下发生,但我有一种感觉,就是单身人士会更频繁地发生这种情况。
但有时单身是一个好主意,你应该坚持下去。即使在AS3中,您也可以将单例与着名的私有类参数构造函数解决方法一起使用。作为不使用单身人士的启发式,如果班级需要大量引用其他单身人士,我建议考虑一下。 并且通过一些思考,你也可以使你的单身人士可以测试。