UML类图和泛型

时间:2011-01-24 20:25:01

标签: java uml

如何在类图中指明泛型类或接口?

我正在寻找两件事:

  1. 一个是如何使用笔和纸进行通用java类的建模。
  2. 其次,那里的uml工具支持泛型类/接口。
  3. 谢谢!

7 个答案:

答案 0 :(得分:33)

通常,泛型表示为分类器的模板参数。以下是NetBeans UML插件中的示例:

enter image description here

答案 1 :(得分:16)

UML将它们称为参数化类型 - 请参阅示例here

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

答案 2 :(得分:5)

答案 3 :(得分:3)

  

一个是如何使用笔和纸进行通用java类的建模。

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

  

其次,那里的uml工具支持泛型类/接口。

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

答案 4 :(得分:2)

  

我正在寻找两件事:一个是如果我用笔和纸做的话我如何为通用java类建模。

Craig Larman的书“应用UML和模式3e”中有教师幻灯片和书中的数字。以下是图15.5:

enter image description here

  

其次,那里的uml工具支持泛型类/接口。

我喜欢PlantUML,它将produce来自

的以下图片
skinparam style strictuml
participant sales as "sales:\nArrayList<Sale>"

enter image description here

对于类图,它是produces

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

enter image description here

答案 5 :(得分:0)

在Netbeans中使用的对象称为“派生分类器”。这是Vitalii Fedorenko的答案中用于MyGeneric的对象

答案 6 :(得分:0)

  

一个是如何使用笔和纸进行通用java类的建模。

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

  

其次,那里的uml工具支持泛型类/接口。

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