如何在序列图中显示静态类或静态函数的调用?根据我的理解,生命线属于类的实例/对象。 This article表示可以使用元类构造型。
答案 0 :(得分:8)
“如有疑问,请使用评论或刻板印象......”
序列图:
.......................................................
....+-------------+...........+-------------------+....
....| <<class>> |...........| <<class>> |....
....| Cat |...........| FastFoodTerminal |....
....+------+------+...........+---------+---------+....
...........|............................|..............
...........|..........<<static>>........|..............
...........|...........TurnOn().........|..............
...........+--------------------------->+---+..........
...........|............................|...|..........
...........+<---------------------------+<--+..........
...........|............................|..............
...........|.......Answer...=...........|..............
...........|..DoYouHaveCheeseBurger()...|..............
...........+--------------------------->+---+..........
...........|............................|...|..........
...........+<---------------------------+<--+..........
...........|............................|..............
.......................................................
类图:
...........................................................
....+-------------------------------------------------+....
....| <<class>> |....
....| FastFoodTerminal |....
....+-------------------------------------------------+....
....| [+] void: FastFoodTerminal(); <<constructor>> |....
....| [#] int: ObtainMoneyDifference(); |....
....| [+] void: ReceiveMoney(); |....
....| [+] void: ReturnChange(); |....
....| [+] FastFoodTerminal: TurnOn(); <<static>> |....
....+-------------------------------------------------+....
...........................................................
在这个例子中,“TurnOn()”是一个返回的静态方法, “FastFoodTerminal”类的实例(对象)。
答案 1 :(得分:6)
所以最后是使用构造型来提及静态类/函数。下划线不再适用于UML 2.4.1 Aug 2011,第86页,标题表示法和演示文稿选项
答案 2 :(得分:4)
我认为你的评论涵盖了大部分内容:
UML 2序列图:注意对象标签是如何加下划线的,类和actor是不是听起来像静态类或静态函数的调用用相同的构造型表示1-模式名称的名称部分:ClassName应该是空2-不应该加下划线。
UML无法完全覆盖这一点,因为静态不是UML定义,每种语言都有轻微的差异。但是"features" [pg。 69](attr / operations):
isStatic:Boolean - 指定此功能是否表征由分类器(false)或分类器本身(true)分类的各个实例。默认值为false。
请注意他们说分类器本身。所以问题是我可以将分类器放在序列图中,而不是实例吗?另请注意,并不是说分类器可以是静态的。同一UML规范的第27页显示元类“分类器”(类)中没有isStatic。因此,UML不为静态类提供正式的模型功能。您可以使用构造型或关键字,或您自己的UML配置文件并扩展Class。但简短的回答是做你已发布的。