我应该如何显示接口和 class 之间的关系?

How should I show relationships between interface and class?

我有 Java Spring 网络应用程序和 UML。我有 class PersonalClient (@Entity) 并且我有使用该实体与数据库交互的接口存储库 - PersonalClientRepository (CRUD)。现在,在我的 UML 上它看起来像这样(绿色箭头):

但我认为,这是错误的。是否有正确的方式来显示这种关系?

你展示了一个延伸 «Interface» CrudRepository«Interface» PersonalClientRepository。 Java 中的扩展是 UML 专业化。它应该用一个大的白色三角形箭头表示。 (图表上的小箭头令人困惑,因为它在 UML 中表示可导航关联,这是完全不同的东西)。

我知道您的 «Entity» PersonalClientPersonalClientRepository 会找到或存储的那种对象,它本身不是该接口的实现:
然后你应该替换你的绿色箭头并绘制一个从 PersonalClientRepositoryPersonalClient 的依赖关系:它是一个带有空头箭头的虚线。这意味着存储库需要了解客户端(因为它使用或创建了一些):

class 图不是数据流图。您不使用双向箭头来显示 input/output。对于这种行为逻辑,您将使用 UML activity 图。

单向依赖足以表示存储库与客户端打交道,无论是输入还是输出。 相反,PersonalClient 在结构上不需要存储库。您可以在没有存储库的情况下很好地使用此客户端。