2011-01-24 111 views
28

如何在类图中指定泛型类或接口?UML类图和泛型

我找两件事情真的:

  1. 一个是我怎么好像我是用的笔和纸做通用的Java类建模。
  2. 其次,那里的uml工具支持泛型类/接口。

谢谢!

回答

29

通常泛型被表示为分类器的模板参数。下面是例如,它看起来像在NetBeans UML插件:

enter image description here

2

一个是我如何模拟泛型Java类,如果我用笔和纸做的话。

AFAIK在UML中对此没有特别的支持,最好的可能是使用像<<generic>>这样的刻板印象。但在纸上用笔,没有什么比写作MYType<T>更简单:-)

其次,什么uml工具支持泛型类/接口。

到目前为止我所见过的所有UML工具都支持刻板印象。当然,支持水平可能不同;但是,因为除了餐巾纸之外我几乎不使用任何UML工具:-)在这里我没有太多的比较基础。

+1

请参阅其他答案。 UML确实对泛型有特定的支持,而不必诉诸陈规。心连心。 – sfinnie 2011-01-24 21:53:07

+0

@sfinnie,谢谢,很高兴知道:-) – 2011-01-24 21:55:20

16

UML称他们为参数类型定义泛型 - 见的例子here

至于工具,我知道MagicDraw支持他们。

0

在NetBeans中使用的对象称作“衍生分类”。这是用于MyGeneric的对象来自Vitalii的答案Fedorenko

1

我正在寻找两件事情:一个是我如何模拟泛型Java类,如果我用笔和纸做它。

克雷格拉尔曼的书应用UML和模式3e有指导幻灯片与书中的数字。从图15.5以下为:

enter image description here

其次,什么UML工具,有支持泛型类/接口。

我喜欢PlantUML,这将从

skinparam style strictuml 
participant sales as "sales:\nArrayList<Sale>" 

enter image description here

produce以下图像对于类图,它produces

skinparam style strictuml 
hide empty members 
class "ArrayList<Sale>" as S 
class Store { 
Store() 
} 
Store "1" -> "1" S : "   sales " 

enter image description here

0

一个是我如何建模泛型Java类,如果我用笔和纸做的话。

它是泛化箭头,基类,如果它是抽象的,应该用斜体表示。也可以用刻板印记。

其次,哪些uml工具支持泛型类/接口。

使用http://staruml.io/。真的很棒的工具,你可以在一个地方管理所有的项目图。在右上角有对象/图表树,因此您可以在不同图表中使用相同的类(其他对象)。