如何使用UML类图中的知名类和接口

时间:2017-12-01 08:16:24

标签: uml

鉴于我有两个Java类FooBar,而Bar有一个getFoos()方法,它返回List<Foo>

在Java中,所有类都扩展了父类ObjectList是扩展接口Collection的接口,后者又扩展Iterable。所有这些都是由Java核心提供的,不需要编程。但是,它们具有可以使用或覆盖的方法。可能需要了解接口层次结构,例如,采用Iterable<Foo>的方法将接受List<Foo>

在UML中从这些类中绘制类图时,如何处理众所周知的类(Object)和接口(List及其超级接口Collection和{ {1}})?我是否还必须将它们绘制到图表中?我可以完全跳过它们吗?这些是否有特殊的符号(云对我来说会很棒)?那些不应该被认定的普通类(即,如果它是Iterable而不是java.awt.List)呢?

2 个答案:

答案 0 :(得分:4)

UML没有链接到任何语言,关于JDK类的规范没有任何内容。

许多工具都提供了已定义JDK类的配置文件。

因此,如果您获得“导入配置文件”之类的菜单并查看可用的配置文件,则必须查看您的工具。

另外两个解决方案可能是:

  • 在模型中定义所需的最小JDK类集

  • 尝试编写java程序以生成JDK类的XMI。理论上并不那么复杂,但JDK包含了无法使用内省的JNI类。

答案 1 :(得分:1)

您对如何处理知名类的选择将取决于您计划如何使用UML类图。

如果创建UML图的主要目的是向团队传达设计细节,我会选择包括熟知的类(不仅来自JDK而且还有很好的类) - 在你的上下文中已知)。原因是你希望你的信息集中。添加这些众所周知的类可能会快速混乱您的图表,同时不会向您的消息添加任何内容。出于同样的原因,我通常会排除getter / setter以及对理解设计不重要的任何信息。对于那些不为人所熟知的课程,我会将它们包括在内,因为它们会传达团队无法轻易获取的信息。

如果您的类图将在MDA中使用,即它将用于生成系统实现,那么您必须包含众所周知的类。