知识卡片

何时使用状态图

普通读书笔记卡 · 1949.h

内容

状态图最擅长描述一个对象跨越多个用例的完整生命期行为——同一对象在不同用例场景下如何随事件切换反应模式,这是它的独特价值;但状态图不擅长描述多个对象协作产生的行为,这种场景应换成交互图(专长单个用例内若干对象协作)或活动图(专长跨对象、跨用例的通用活动序列)。使用状态图时也不该给每个类都画一张:只对确实呈现有趣、值得梳理的状态行为的类使用它(常见的是UI和控制类对象),强行配一张只会白白耗费精力。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第10章《状态机图》(源文件:_epub-src/EPUB/9.xhtml) - 结论依据:原文说明"状态图擅长于描述跨越若干用例的对象的行为。状态图不是很擅长于描述涉及许多对象协作的行为……不要尝试为系统中的每一个类画状态图……只为那些呈现有趣行为的类使用状态图"。 - 原始内容:状态图擅长于描述跨越若干用例的对象的行为。状态图不是很擅长于描述涉及许多对象协作的行为……如果你使用了状态图,不要尝试为系统中的每一个类画状态图。虽然盛典完美主义者经常这样做,但几乎是浪费精力。只为那些呈现有趣行为的类使用状态图。