可以为单例绘制状态机图吗?

时间:2016-03-28 15:34:03

标签: uml

我有一个执行许多任务的单例类:

  • 注册听众以接收位置更新。
  • 取消注册听众。
  • 如果调用侦听器方法,则触发API调用。

我想为该类绘制一个状态机图,但是想知道单例是否正确。

2 个答案:

答案 0 :(得分:3)

为什么单例实例与其他实例有任何不同?单例模式只是使构造函数变为私有,因此只能有一个实例,通过getInstance()操作获得。

您应该考虑将UML中的类建模为"活动类"声明该类具有自发行为,而且从不#34;结束。正如UML 2.5规范中所解释的那样:

  

活动对象是一个对象,它作为其创建的直接结果,开始执行其classifierBehavior,并且在完成Behavior执行或对象被某个外部对象终止之前不会停止。 (这有时被称为“具有自己的控制线程的对象。”)活动对象响应来自其他对象的通信的点仅由活动对象的行为而不是由调用对象确定。如果活动对象的classifierBehavior完成,则终止该对象。

答案 1 :(得分:2)

当然可以这样做。那个人不能和另一个人做任何事情。 Singleton意味着只有一个实例。现在状态机可以尊重或忽略这个事实,具体取决于你想要实现的目标。