Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
UML:Java Defender或默认方法_Java_Uml_Default Method - Fatal编程技术网

UML:Java Defender或默认方法

UML:Java Defender或默认方法,java,uml,default-method,Java,Uml,Default Method,自Java8发布以来,您可以在接口中提供方法的默认实现 我一直在寻找一种在UML中实现这一点的方法,但在这个问题上找不到任何东西。接口中默认实现的情况可能太特殊,无法在UML规范中采用 但问题仍然是: 有没有一种方法可以在UML中显示这些默认方法?从UML的角度来看,这种情况没有什么特别之处,这就是原型的用途 UML表示一个概念模型,它与特定语言的情况无关,因此您可以通过以下方式对其进行建模: 如何实施这样的模式是另一回事。在Java中,可以使用接口,在C++中(没有接口)抽象类,在Ruby中

自Java8发布以来,您可以在接口中提供方法的默认实现

我一直在寻找一种在UML中实现这一点的方法,但在这个问题上找不到任何东西。接口中默认实现的情况可能太特殊,无法在UML规范中采用

但问题仍然是:


有没有一种方法可以在UML中显示这些默认方法?

从UML的角度来看,这种情况没有什么特别之处,这就是原型的用途

UML表示一个概念模型,它与特定语言的情况无关,因此您可以通过以下方式对其进行建模:

如何实施这样的模式是另一回事。在Java中,可以使用接口,在C++中(没有接口)抽象类,在Ruby中,可能采取不同的方法,但是java模型仍然是相同的。
**我的意思是,通常的做法是在建模级别提交特定的语言,因此可以更改模型以更好地适应目标语言。

java 8中的接口中有三种类型的方法:

  • 静止的
  • 违约
  • 摘要
  • 抽象方法通常是斜体的

    +sayAbstract():void

    静态方法通常是u̲n̲d̲e̲r̲l̲i̲n̲e̲d̲:

    +̲s̲a̲y̲s̲t̲a̲t̲i̲c̲̲̲̲v̲o̲i̲d̲

    由于默认方法是一种实例方法,因此请相应地设置它们的格式:

    +sayDefault():void


    UML是可扩展的。根据您使用的工具,这可能很容易做到。但一般来说,UML不(IMHO也不应该)包括特定的语言方面。但是没有人用斜体字在接口中放置抽象方法(标准也不这样),因此使用常规字体的默认方法将无法将它们与抽象接口方法区分开来