如何显示静态方法UML类图的用法

Nic*_*las 14 oop uml class-diagram conceptual

如何在UML类图中显示静态方法的使用?

class A{
    public static void test(){
    }
}

class B{
    public void b(){
    A.test();
    }
}
Run Code Online (Sandbox Code Playgroud)

类图如何显示,它显示了这种关系?如果存在差异,将准备UML 2.0.

Rob*_*tMS 15

要显示静态方法,请为静态方法的名称加下划线 - 请查看此处以获取更多详细信息.

至于导航这种关系; class B取决于存在的class A.我们可以说B类在A类上有"使用依赖"

class B ----uses----> class A
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


uml*_*cat 10

@RobertMS是对的.

另一种选择,它使用刻板印象:

..............................................................
....+----------------------------------------------------+....
....|                StringUtilityClass                  |....
....+----------------------------------------------------+....
....| [+] void: lowerCase()              <<non virtual>> |....
....| [+] void: upperCase()              <<non virtual>> |....
....| [+] String: toString()                <<override>> |....
....+----------------------------------------------------+....
....| [+] String: LowerCaseCopy(String Value) <<static>> |....
....| [+] String: UpperCaseCopy(String Value) <<static>> |....
....| [+] String: ReverseCopy(String Value)   <<static>> |....
....+----------------------------------------------------+....
..............................................................
Run Code Online (Sandbox Code Playgroud)

注意 一些编程语言最佳实践,特别是那些具有C语言敏感语法的编程语言,将静态函数大写,并将其余函数保留为驼峰小写.

干杯.


Stu*_*ter 8

要显示静态方法和属性,请在UML类图中为它们加下划线:请参阅UML Distilled p.66或UML上层结构规范的 7.3.19(特征):

静态功能加下划线.

要显示类B和A之间的关系(其中B仅在A中使用静态方法),您使用依赖关系,而不是关联.关联始终在每个类的实例之间,如UML超结构规范的7.3.3节(关联):

关联指定可在类型化实例之间发生的语义关系.

但是B类依赖于A类,如规范7.3.12节所述:

依赖关系是一种关系,表示单个或一组模型元素需要其他模型元素用于其规范或实现.

可能值得用刻板印象来澄清依赖性的本质.您可以使用use构造型,但这非常通用,实际上包含实例之间的标准关联(尽管您显然通常使用关联来明确显示它们).正如福勒在UML Distilled中所说,

许多UML关系意味着依赖.从订单到客户的可导航关联[在他的一个示例中......]意味着订单依赖于客户.

似乎没有关于使用什么刻板印象的标准.我曾经usesStatically清楚过依赖的本质; 那是

B --usesStatically--> A

(或者,如果B类有一个A实例作为静态字段,我会使用类似的东西,B--containsStatically--> A如果我在类图中明确表示B;否则在B中只有一个带下划线的静态属性A)