Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们需要在UML类图中添加可运行接口吗?_Java_Sockets_Uml_Runnable_Class Diagram - Fatal编程技术网

Java 我们需要在UML类图中添加可运行接口吗?

Java 我们需要在UML类图中添加可运行接口吗?,java,sockets,uml,runnable,class-diagram,Java,Sockets,Uml,Runnable,Class Diagram,我用套接字编程创建了一个简单的FlappyBird克隆游戏,现在我正在制作UML图。 我的类实现了Runnable 比如: 以及: 尽管user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节 作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。虽然user7(以前)接受的答案本身是正确

我用套接字编程创建了一个简单的FlappyBird克隆游戏,现在我正在制作UML图。 我的类实现了Runnable

比如:

以及:

尽管user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节

作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。

虽然user7(以前)接受的答案本身是正确的,但也有一个“视情况而定”。如果您为一台机器(一个代码生成器)或一个编码猴子创建您的UML,您将不得不添加它以使其完整。如果是为了一个共同的(人类)理解,你可以省略这些细节


作为旁注:你的箭是错的。这些是扩展(仅用于概要文件定义),而不是实现。一个实现有一个开放的三角形和一条虚线。

UML是方法论不可知的。因此,这完全取决于您的目标:

  • 如果是分析或域模型
    可运行
    则不相关(正如另一个答案正确指出的那样)
  • 如果是设计模型,即解释解决方案工作原理的模型,则取决于
    可运行的
    与您的设计的相关性:
    • 如果解决方案中没有任何内容需要
      可运行的
      ,则不需要显示它
    • 如果一个类希望使用
      可运行的
      ,或者如果该类希望在的更大视图中提供此接口,那么您应该显示它
  • 如果它是一个实现模型,即一个旨在精确记录解决方案实现方式的模型,则应记录
    可运行的
    。请注意,使用这种详细的实现模型对学校工作有好处,但对现实世界的项目来说不是一个有趣的选择,因为它很难维护,而且代码有些冗余,除非您有可以为您生成图表的反向工程工具
如果决定显示关系,则必须重新设计图形布局:

    箭头必须用空白三角形代替。一个普通的箭头是模棱两可的,可能会误导读者认为它是一个箭头(原则上显示为一个开放的箭头,但箭头仍然是)
  • 但是由于它是一个接口,并且您的类
    实现了它而不是
    扩展了它,所以您应该使用虚线来表示它是的(这是一个依赖项,与继承/泛化的含义稍有不同)

    • UML是方法论不可知的。因此,这完全取决于您的目标:

      • 如果是分析或域模型
        可运行
        则不相关(正如另一个答案正确指出的那样)
      • 如果是设计模型,即解释解决方案工作原理的模型,则取决于
        可运行的
        与您的设计的相关性:
        • 如果解决方案中没有任何内容需要
          可运行的
          ,则不需要显示它
        • 如果一个类希望使用
          可运行的
          ,或者如果该类希望在的更大视图中提供此接口,那么您应该显示它
      • 如果它是一个实现模型,即一个旨在精确记录解决方案实现方式的模型,则应记录
        可运行的
        。请注意,使用这种详细的实现模型对学校工作有好处,但对现实世界的项目来说不是一个有趣的选择,因为它很难维护,而且代码有些冗余,除非您有可以为您生成图表的反向工程工具
      如果决定显示关系,则必须重新设计图形布局:

        箭头必须用空白三角形代替。一个普通的箭头是模棱两可的,可能会误导读者认为它是一个箭头(原则上显示为一个开放的箭头,但箭头仍然是)
      • 但是由于它是一个接口,并且您的类
        实现了它而不是
        扩展了它,所以您应该使用虚线来表示它是的(这是一个依赖项,与继承/泛化的含义稍有不同)

      我只是在写一个答案,但显然在阅读你的答案之前,我至少花了22分钟才在我的微型智能手机上写下;-)@克里斯托夫·尤尔一如既往地是最完整(也是最好的):-)非常感谢:-)你的优点是非常简洁我只是在写一个答案,但很明显,在阅读你的答案之前,我至少花了22分钟才在我的微型智能手机上写下;-)@克里斯托夫·尤尔一如既往地是最完整(也是最好的):-)非常感谢:-)你的优点是非常简洁最佳答案,而目前被接受的答案是“最差的”,因为restrictive@bruno谢谢你的赏识!你成就了我的一天:-)我确实试着给出一个更完整的观点,以便OP能够客观地根据意图决定什么是最好的。最好的答案,而目前被接受的答案是“最坏的”,因为restrictive@bruno谢谢你的赏识!你让我开心:-)我确实试着给出一个更完整的观点,这样OP可以客观地根据意图决定什么是最好的。
      static class Flappy implements Runnable{....}
      
      public class Client extends Application implements Runnable{.....}