如何在 UML class 图中使用众所周知的 classes 和接口
How to go with well-known classes and interfaces in an UML class diagram
鉴于我有两个 Java classes Foo
和 Bar
,并且 Bar
有一个 getFoos()
方法 returns一个List<Foo>
.
在 Java 中,所有 class 扩展父 class Object
。 List
是扩展接口 Collection
的接口,后者又扩展了 Iterable
。所有这些都由 Java 核心提供,不需要编程。但是,它们具有可以使用或覆盖的方法。可能需要了解接口层次结构,例如采用 Iterable<Foo>
的方法将接受 List<Foo>
.
在 UML 中根据这些绘制 class 图时,如何处理众所周知的 classes (Object
) 和接口 (List
,及其超级接口 Collection
和 Iterable
)?我是否也必须将它们绘制到图表中?我可以完全跳过它们吗?这些是否有一个特殊的符号(云对我来说感觉很棒)?应该限定的不常见 classes 怎么样(即如果它是 java.awt.List
而不是 java.util.List
)?
UML 不与任何语言挂钩,JDK 类.
规范中没有任何内容
很多工具都提供了一个已经定义了 JDK 类 的配置文件。
因此,如果您获得类似 "import profile" 的菜单并查看哪些配置文件可用,则必须查看您的工具。
其他两个解决方案可能是:
在您的模型中定义您需要JDK类的最小集合
正在尝试编写 java 程序来生成 JDK 类 的 XMI。理论上没那么复杂,但是 JDK 包括 JNI 类 不能使用内省。
您选择如何处理众所周知的 classes 将取决于您计划如何使用 UML class 图。
如果创建 UML 图的主要目的是向团队传达设计细节,我会选择 not,包括众所周知的 classes(不是仅来自 JDK 以及在您的上下文中众所周知的 classes)。原因是您希望您的信息有重点。添加这些众所周知的 classes 会很快使您的图表变得混乱,而不会向您的消息中添加任何内容。出于同样的原因,我通常排除 getters/setters 和任何对理解设计无关紧要的信息。对于不知名的 classes,我将包括它们,因为它们传达的信息对于团队来说不容易获得。
如果您的 class 图将在 MDA 中使用,即将用于生成系统实现,那么您必须包括众所周知的 classes。
鉴于我有两个 Java classes Foo
和 Bar
,并且 Bar
有一个 getFoos()
方法 returns一个List<Foo>
.
在 Java 中,所有 class 扩展父 class Object
。 List
是扩展接口 Collection
的接口,后者又扩展了 Iterable
。所有这些都由 Java 核心提供,不需要编程。但是,它们具有可以使用或覆盖的方法。可能需要了解接口层次结构,例如采用 Iterable<Foo>
的方法将接受 List<Foo>
.
在 UML 中根据这些绘制 class 图时,如何处理众所周知的 classes (Object
) 和接口 (List
,及其超级接口 Collection
和 Iterable
)?我是否也必须将它们绘制到图表中?我可以完全跳过它们吗?这些是否有一个特殊的符号(云对我来说感觉很棒)?应该限定的不常见 classes 怎么样(即如果它是 java.awt.List
而不是 java.util.List
)?
UML 不与任何语言挂钩,JDK 类.
规范中没有任何内容很多工具都提供了一个已经定义了 JDK 类 的配置文件。
因此,如果您获得类似 "import profile" 的菜单并查看哪些配置文件可用,则必须查看您的工具。
其他两个解决方案可能是:
在您的模型中定义您需要JDK类的最小集合
正在尝试编写 java 程序来生成 JDK 类 的 XMI。理论上没那么复杂,但是 JDK 包括 JNI 类 不能使用内省。
您选择如何处理众所周知的 classes 将取决于您计划如何使用 UML class 图。
如果创建 UML 图的主要目的是向团队传达设计细节,我会选择 not,包括众所周知的 classes(不是仅来自 JDK 以及在您的上下文中众所周知的 classes)。原因是您希望您的信息有重点。添加这些众所周知的 classes 会很快使您的图表变得混乱,而不会向您的消息中添加任何内容。出于同样的原因,我通常排除 getters/setters 和任何对理解设计无关紧要的信息。对于不知名的 classes,我将包括它们,因为它们传达的信息对于团队来说不容易获得。
如果您的 class 图将在 MDA 中使用,即将用于生成系统实现,那么您必须包括众所周知的 classes。