所需接口 vs 接口实现 vs <<use>> 依赖

thu*_*ird 5 uml interface

正如标题所示,三者之间有什么区别,什么时候应该使用三者之一而不是其他两者?互联网上充满了它们的定义,但我找不到任何关于何时何地使用所需接口或<<use>>依赖项的文本或解释。

Uff*_*ffe 5

实际上只有两种情况:一方面是实现/使用,另一方面是提供/需要。它们本质上描述的是同一件事,但侧重点不同。

通过实现/使用,您可以绘制从类(或组件,如下面的示例)到接口的可见关系,从而在图中显示接口及其操作。

实现/使用

当然,您可以将其分成两个不同的图表。

另一方面,使用提供/必需时,界面仅显示为棒棒糖,因此您看不到操作。但您可以在棒棒糖之间绘制可见的关系(通常是“组装”)。

提供/要求

我想说,如果你想展示谁实现了什么,那么实现/使用更合适。如果您想更多地关注部件之间的交互,则提供/必需更合适。


qwe*_*_so 2

所需的接口通常显示为套接字。这意味着为了让该类工作,它需要在运行时有一个棒棒糖的对应物。该对应物又通过棒棒糖提供接口。为了解耦类和接口定义,您可以将接口放入构造型类中,并从提供类到接口绘制一个实现。反之亦然,您可以从需要的类到接口建立依赖关系。是否对依赖进行刻板印象<<use>>更多是一个品味问题。

在此输入图像描述

如上所述并作为替代表示: 在此输入图像描述