Java 我们需要在UML类图中添加可运行接口吗?
我用套接字编程创建了一个简单的FlappyBird克隆游戏,现在我正在制作UML图。 我的类实现了Runnable 比如: 以及: 尽管user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节 作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。虽然user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节Java 我们需要在UML类图中添加可运行接口吗?,java,sockets,uml,runnable,class-diagram,Java,Sockets,Uml,Runnable,Class Diagram,我用套接字编程创建了一个简单的FlappyBird克隆游戏,现在我正在制作UML图。 我的类实现了Runnable 比如: 以及: 尽管user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节 作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。虽然user7(以前)接受的答案本身是正确
作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。UML是方法论不可知的。因此,这完全取决于您的目标:
- 如果是分析或域模型,
则不相关(正如另一个答案正确指出的那样)可运行
- 如果是设计模型,即解释解决方案工作原理的模型,则取决于
与您的设计的相关性:可运行的
- 如果解决方案中没有任何内容需要
,则不需要显示它可运行的
- 如果一个类希望使用
,或者如果该类希望在的更大视图中提供此接口,那么您应该显示它可运行的
- 如果解决方案中没有任何内容需要
- 如果它是一个实现模型,即一个旨在精确记录解决方案实现方式的模型,则应记录
。请注意,使用这种详细的实现模型对学校工作有好处,但对现实世界的项目来说不是一个有趣的选择,因为它很难维护,而且代码有些冗余,除非您有可以为您生成图表的反向工程工具可运行的
-
箭头必须用空白三角形代替。一个普通的箭头是模棱两可的,可能会误导读者认为它是一个箭头(原则上显示为一个开放的箭头,但箭头仍然是)
- 但是由于它是一个接口,并且您的类
实现了它而不是
扩展了它,所以您应该使用虚线来表示它是的(这是一个依赖项,与继承/泛化的含义稍有不同)
- 如果是分析或域模型,
则不相关(正如另一个答案正确指出的那样)可运行
- 如果是设计模型,即解释解决方案工作原理的模型,则取决于
与您的设计的相关性:可运行的
- 如果解决方案中没有任何内容需要
,则不需要显示它可运行的
- 如果一个类希望使用
,或者如果该类希望在的更大视图中提供此接口,那么您应该显示它可运行的
- 如果解决方案中没有任何内容需要
- 如果它是一个实现模型,即一个旨在精确记录解决方案实现方式的模型,则应记录
。请注意,使用这种详细的实现模型对学校工作有好处,但对现实世界的项目来说不是一个有趣的选择,因为它很难维护,而且代码有些冗余,除非您有可以为您生成图表的反向工程工具可运行的
- 但是由于它是一个接口,并且您的类
实现了它而不是
扩展了它,所以您应该使用虚线来表示它是的(这是一个依赖项,与继承/泛化的含义稍有不同)
- UML是方法论不可知的。因此,这完全取决于您的目标:
-
箭头必须用空白三角形代替。一个普通的箭头是模棱两可的,可能会误导读者认为它是一个箭头(原则上显示为一个开放的箭头,但箭头仍然是)
static class Flappy implements Runnable{....}
public class Client extends Application implements Runnable{.....}