这个 Hibernate 图中的类和接口之间的不同类型的箭头是啥意思?

Posted

技术标签:

【中文标题】这个 Hibernate 图中的类和接口之间的不同类型的箭头是啥意思?【英文标题】:What do the different kinds of arrows between classes and interfaces in this Hibernate diagram mean?这个 Hibernate 图中的类和接口之间的不同类型的箭头是什么意思? 【发布时间】:2018-01-06 20:14:59 【问题描述】:

我试图从 http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html 中了解 the following diagram 以了解 Hibernate 类之间的关系。

我不确定不同种类的箭头是什么意思,我猜他们没有遵循 UML 图规范。有人能解释一下不同种类的箭头是什么意思吗?谢谢。

【问题讨论】:

我猜这些是用一些 Eclipse 工具制作的:-/ 【参考方案1】:

圈起来的Is 和C(可能是接口和类)不是UML 标准。但是,您可以根据需要用图标装饰刻板印象的类。虽然我怀疑这里的标准类需要一个刻板印象来将它们标记为“标准类”。

我猜是

带有实心三角形的虚线箭头应该是实现(因为它们指向接口)。这些将需要 UML 中的未填充三角形才能正确。 实线三角形也是如此,它们可能是概括性的。 UML 在这里需要未填充的三角形。

其他任何东西(不多)似乎都很好。

虚线和空心三角形的依赖关系 用实心菱形显示的复合材料的定向关联。

【讨论】:

谢谢,Directed Association with Composite 是标准的 UML 表示法吗? @Gholamali-Irani 是的,是的。另见uml-diagrams.org/association.html @Thomas Kilian:术语“定向关联”不是 UML 标准术语。事实上,UML 只定义了导航箭头,而没有定义单向和双向关联所需的“方向性”概念。 @GerdWagner 是的,你是对的。我更通俗地使用它来表示他们的印度人在这里使用了正确的箭头。【参考方案2】:

如果我理解的话,它不是 UML 图。

SessionFactory 和 SessionFactoryImpl 之间的箭头可能是一个概括,但在 UML 中,箭头是空的,没有像图中那样填充

Transaction 和 TransactionImpl 之间的箭头似乎是一种实现关系,但在 UML 中没有组合,而是一条带空箭头的虚线

TransactionImpl 和 EntityTransaction 之间的箭头可能是依赖关系,但在 UML 中这是一个开放箭头。

【讨论】:

@Gholamali-Irani 我会说这是一个带有语法错误的 UML 图 ;-) 就像你不会说“这句话不是英语”不是英语而是错误的英语。

以上是关于这个 Hibernate 图中的类和接口之间的不同类型的箭头是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

实体框架中的类和接口层次结构?

通过Java中的类和接口实现不同的用户类型

抽象类和接口以及它们之间的区别

UML系列:Class Diagram

Hibernate中的五大核心类和接口

Servlet常用接口及类之间的关系