我正在使用Observer模式在Java中创建一个程序(在Java API的帮助下)。如果某些可观察对象有多个实例,程序可能会崩溃。我应该将它们作为单身人员实施吗?推荐吗?
答案 0 :(得分:2)
我应该将它们作为单身实施吗?推荐吗?
当然你可以这样做。这是否是一个好主意取决于实际情况。
这些事情在概念上是单身,还是这只是一个试图让错误消失的黑客? (换句话说,你的应用程序设计错误的真正问题是......)
单身人士在单元测试方面确实存在问题。这不是一个显示阻止,但这是人们倾向于避免它们的原因之一。
答案 1 :(得分:1)
我之前做过,并没有任何问题,因为我使用了单身人士。 该模式可以使用它。
答案 2 :(得分:1)
是的,GoF将Singleton列为与观察者相关的模式(以及Mediator):
ChangeManager可以使用Singleton模式使其唯一且可全局访问。
ChangeManager是示例代码中的Observable。
我每次使用持久性单元发生相关更改时都使用Singleton Observable(here)来更新GUI。程序不会崩溃,但如果有更多实例,它将无法按预期运行。