转换并不是状态。转换是将对象从一个状态移动到另一个状态的事件。状态由对象中变量的值和对象的行为定义。例如,一个学生对象具有“新等待批准”的值。这个学生不能注册或参加课程。但是,如果该值更改为“已批准”,那么同一学生可能被允许注册并参加课程。区别在哪里?实际上,学生对象有两种状态。是什么导致学生对象从一个状态转移到另一个状态?也许是“批准到达”事件。因此,“批准到达”出现在两个状态之间的箭头上。
在这个图表中,“转换箭头”并不是状态,它们代表的是“转换/动作/事件”。例如,在上述图表中,“Scheduled”是状态,“open”是在此状态下进行的动作,之后进入“Open for enrollment”状态。可以用更详细的“is being opened”替换这个“open”转换动作。 不幸的是,像scheduled/open这样的转换动作很容易被误认为是状态,但这并不是意图。