如何用UML方法表示通用参数?

如何用UML方法表示通用参数?,第1张

如何用UML方法表示通用参数?

我不知道如何在您选择的工具中执行此 *** 作,但是在模型级别,它的工作方式与类完全相同。您使用签名创建模板 *** 作。

UML2上层结构的第17.4.14章对此进行了说明:

模板 *** 作的模板参数和模板参数绑定是 *** 作名称和 *** 作参数之间的两个列表。
* <可见性> <名称>’<’<模板参数列表>’>’‘<<’<绑定表达式列表>’>>’‘(’<参数> [‘,’<参数>] * * ‘)’[‘:’
<属性字符串>]

就您的情况而言,我们首先来看一下

public <T> boolean bar(T x, T y)

这将对应于

+ bar (x:T,y:T):布尔值

您的原始示例看起来更加复杂,因为模板参数被限制在另一个类Comparable中,该类又是一个模板,其参数(我将其称为T1)又绑定到 *** 作的参数。这给了我们

+ bar 可比 T >>(x:T,y:T):布尔值

注:比特的深入漫步超前 )模板由UML指定(在一定程度C
++)是从泛型一个非常不同的野兽在Java中。它们看起来或多或少是相同的,但是它们的语义上存在(有时是微妙的)差异,这使得很难将两者匹配。UML中最重要的一个是:

模板不能以与相同类型的非模板元素相同的方式使用。模板元素只能用于生成绑定元素(例如,模板类不能用作类型化元素的类型)或作为另一个模板规范的一部分(例如,模板类可以专门化另一个模板类)。

这意味着在UML中,OtherFoo也需要也是一个模板-
即具有模板签名(带有0个参数)。为了在模板范围之外正确使用 *** 作模板(即在活动或类似 *** 作中调用它),您首先必须将其绑定到一个具体的 *** 作上,该 *** 作将被使用。对于您的示例,这意味着:

  1. 将OtherFoo模板绑定到(匿名)绑定类。
  2. 将栏 *** 作模板绑定到绑定类中的 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5020760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存