可观察的类可以构建为单例吗?

时间:2011-04-25 22:56:11

标签: java singleton design-patterns observer-pattern

我正在使用Observer模式在Java中创建一个程序(在Java API的帮助下)。如果某些可观察对象有多个实例,程序可能会崩溃。我应该将它们作为单身人员实施吗?推荐吗?

3 个答案:

答案 0 :(得分:2)

  

我应该将它们作为单身实施吗?推荐吗?

当然你可以这样做。这是否是一个好主意取决于实际情况。

  • 这些事情在概念上是单身,还是这只是一个试图让错误消失的黑客? (换句话说,你的应用程序设计错误的真正问题是......)

  • 单身人士在单元测试方面确实存在问题。这不是一个显示阻止,但这是人们倾向于避免它们的原因之一。

答案 1 :(得分:1)

我之前做过,并没有任何问题,因为我使用了单身人士。 该模式可以使用它。

答案 2 :(得分:1)

是的,GoF将Singleton列为与观察者相关的模式(以及Mediator):

  

ChangeManager可以使用Singleton模式使其唯一且可全局访问。

ChangeManager是示例代码中的Observable。

我每次使用持久性单元发生相关更改时都使用Singleton Observable(here)来更新GUI。程序不会崩溃,但如果有更多实例,它将无法按预期运行。