我读到Statechart Diagram通常用于描述对象的转换。其中一个对象是一个类。
你能举例说明如何生成状态图,显示OOP编程中类的转换吗?
我之前用Google搜索过,但一无所获。 我感到有点困惑的部分是将状态图中的类的函数和属性放在何处。提前致谢!
答案 0 :(得分:1)
属性/操作是转换的一部分。您可以将属性作为Guard的一部分进行检查,以限制状态之间的转换。在状态的进入/退出(和内部),您可以执行该类的操作。
根据您的评论进行修改:
假设我有一个名为Teacher
的类,其中包含两个名为getteachername()
和setteachername()
的函数,其中一个属性名为name
。
如果需要实现约束,可以使用状态图(在下面非常简单和愚蠢的情况下)。假设名称只能在允许附加字符串的规则上设置,如果它以“Paul”开头。然后从状态isEmpty
开始。它有一个传出转换modify
,如果名称设置为“Paul”,它将转到statePaul
。从该状态,您可以在向name
追加内容时转换到相同的状态。从stateOther
开始,您只能转到isEmpty
。
请注意,这是构造的,愚蠢和不现实的。但它显示了状态机如何基于使用类的方法来控制属性的更改。