【问题标题】:What does a diamond sign signify in UML class diagrams?UML 类图中的菱形表示什么?
【发布时间】:2013-02-15 00:09:26
【问题描述】:

考虑下面的两个图表。顶部的右端包含一个普通箭头,底部的左端包含一个带有菱形的箭头,右端包含一个普通箭头。 great book GoF 有这两种图表的用法。

我想了解在第二种情况下 菱形 表示什么,以及这两者中的哪一个在CustomerOrder 之间产生了更强的关联。

在这两种情况下,Customer 类是否负责 Order 类的生命周期?

【问题讨论】:

    标签: design-patterns uml class-diagram


    【解决方案1】:

    如果没有菱形,那么我们就有一个简单的关联

    如果菱形留空,则表示它是一个聚合。这种关系比简单的关联要强。在这种情况下,客户聚合订单。

    如果菱形是黑色,则说明它是一个组合,比聚合还要强,因为聚合的类不能被其他类聚合。它的“生命”取决于容器。

    我认为它解释得更清楚一点,在:

    【讨论】:

      【解决方案2】:

      客户和订单是一种“有”的组合关系,因为如果客户不复存在,他/她的订单也将不复存在。因此,容器(客户)和容器内的实例(订单)之间存在生命周期依赖关系。当容器不复存在时,它的所有实例也将不复存在。

      另一方面,如果我们说客户有一本书。在这种情况下,我们有一个“has-a”聚合关系。因为如果客户不复存在,这本书仍然可用。

      【讨论】:

        【解决方案3】:

        它表示聚合。来自维基百科:

        在 UML 中,它在图形上表示为空心菱形 包含树的类末端,单线连接 包含类到包含类。聚合在语义上是 在许多情况下被视为一个单元的扩展对象 操作,虽然它在物理上是由几个较小的对象组成的。

        http://en.wikipedia.org/wiki/Class_diagram

        【讨论】:

          猜你喜欢
          • 2018-09-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多