【发布时间】:2010-06-22 07:02:05
【问题描述】:
我使用状态模式来实现一个简单的有限状态机。查看Wikipedia 上给出的描述,更具体地说是建议的Java 实现,我想知道为什么实现State 接口(即各种状态)的类不是单例?
在建议的实现中,每当发生转换时都会创建一个新状态。然而,一个对象足以代表每个状态。那么,为什么每次发生转换都浪费时间创建一个新实例呢?
【问题讨论】:
-
我在我的项目中遇到了同样的问题。我认为如果它被实现为单例,那么每个
State都应该有一个CleanUp方法来重置信号或本地变量。稍微复杂一点。所以我宁愿每次new一个实例。我的应用程序的目标平台是 IOS,所以性能可能是一个问题。但直到现在它都可以正常工作。
标签: java design-patterns state-pattern