【问题标题】:How to indicate a relationship between a class (or interface) and a interface that is used a type parameter in function如何指示类(或接口)与在函数中使用类型参数的接口之间的关系
【发布时间】:2021-04-28 12:12:53
【问题描述】:

我自己找不到答案,所以我会在这里尝试。

我正在处理一项任务,但我不确定如何在类(或接口)和在所述类的方法中使用参数的接口之间绘制某种关系。 TBH 我从 java 代码(我们作为作业收到)对其进行了逆向工程,但在我看来,它缺少关系,特别是我上面提到的关系。

我有一些例子:

您会看到在 Subject 的方法中使用 Observer Type 作为参数。

同上,MQTTClientServer在其订阅函数中使用接口类型MQTTCallback。

我真的在这个问题上摸不着头脑,我会假设因为它是一个接口,所以接口的实现将决定关系的实际实现位置。但我找不到任何关于如何记录这些关系的理论信息。

【问题讨论】:

    标签: uml class-diagram


    【解决方案1】:

    使用接口或类作为参数类型意味着使用 UML。可以使用虚线箭头和关键字«use»从具有操作的类到用作类型的接口或类显式建模。

    实现将稍后指定接口或类的具体使用方式,但这不会改变使用关系。

    在参数的情况下,箭头可能看起来是多余的,因为使用类型已经是一种用法。但是,以图形方式可视化关系可以帮助最小化不需要的关系。此外,如果接口或类在内部使用,如果不对这种关系进行建模,它将是不可见的。

    编辑:关键字是«use»,而不是«usage»,就像我之前写的那样。

    【讨论】:

    • 在这种情况下,我通常使用简单的依赖项(因此没有刻板印象)。不过,《使用》并没有错。从我的 POV 来看,依赖项已经意味着使用,因为如果不是使用指示,依赖项还会是什么?我知道这是一个哲学问题。
    • 我同意一个简单的依赖在这种情况下有效。但是,当它明显 一种用法时,为什么不更具体一点。一个优点是,至少对于接口而言,作为一种符号选项,可以使用棒棒糖符号作为套接字符号来显示用法。请注意,它不是一个刻板印象,即使它的关键字是用 guillemets 写的。它是一个成熟的元类。不是,它在这里会产生很大的不同,但我认为值得一提。
    • 再一次被关键字/刻板印象的歧义所愚弄。我想知道 OMG 的谁负责...
    • 实际上,因为原型和元类都在元级别上,所以图表的读者不需要知道它是什么。因此,我认为不使用不同的符号是有意义的。
    • 也许是为了读者。但我猜个人资料的维护者不会同意。
    猜你喜欢
    • 2014-08-22
    • 2018-09-15
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2011-03-30
    • 2021-08-07
    相关资源
    最近更新 更多