Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 为什么关联、聚合和组合的使用方式与本例中的使用方式相同?_Uml_Aggregation - Fatal编程技术网

Uml 为什么关联、聚合和组合的使用方式与本例中的使用方式相同?

Uml 为什么关联、聚合和组合的使用方式与本例中的使用方式相同?,uml,aggregation,Uml,Aggregation,我理解这三者之间的区别(或者至少我认为我理解)。我知道还有很多类似的问题,都有这样的定义 我从中寻找一个例子,我正在努力理解为什么一些关系被用在了他们使用的方式上。我想我真正要做的是理解什么时候使用联想 我的一些问题是: 为什么客户订单和客户信用卡是一种关联,而不是像客户地址那样的聚合 如果没有订单,ItemOrder就不存在,为什么Order ItemOrder不是合成 为什么ItemOrder项不是聚合 简单地忘记共享/复合聚合。它的语义很低,只会导致徒劳的讨论,不管它是否需要,在哪里使用对

我理解这三者之间的区别(或者至少我认为我理解)。我知道还有很多类似的问题,都有这样的定义

我从中寻找一个例子,我正在努力理解为什么一些关系被用在了他们使用的方式上。我想我真正要做的是理解什么时候使用联想

我的一些问题是:

  • 为什么客户订单和客户信用卡是一种关联,而不是像客户地址那样的聚合
  • 如果没有订单,ItemOrder就不存在,为什么Order ItemOrder不是合成
  • 为什么ItemOrder项不是聚合

  • 简单地忘记共享/复合聚合。它的语义很低,只会导致徒劳的讨论,不管它是否需要,在哪里使用对还是错。只需使用(并解释)关联性和多样性


    在DB外键(强制删除)和内存(空闲未使用)管理中(几乎)唯一可以以有意义的方式使用聚合的地方

    简单地忘记共享/复合聚合。它的语义很低,只会导致徒劳的讨论,不管它是否需要,在哪里使用对还是错。只需使用(并解释)关联性和多样性


    在DB外键(强制删除)和内存(空闲未使用)管理中(几乎)唯一可以以有意义的方式使用聚合的地方

    为了回答这些问题,了解绘制此类图的原因很重要。只有作者知道,但也许这只是gliffy能力的证明?否则,该模型中的类可能对应于源代码中的类,这些类是用面向对象语言(如Java或C#)编写的,并且该图旨在深入了解这些类之间的关系

  • 为什么客户订单和客户信用卡是一种关联,而不是像客户地址那样的聚合

    显然,作者并不认为这些关系是关系的一部分。可能客户在源代码中没有任何订单或信用卡的参考。可能地址信息属于类别客户的责任,但订单和信用卡信息不属于类别客户的责任

  • 如果没有订单,ItemOrder就不存在,为什么Order ItemOrder不是合成

    也许作者只使用了UML的一个子集,而没有按照约定使用组合。也许作者认为聚合和合成之间的区别对于本图而言并不重要

  • 为什么ItemOrder项不是聚合

    显然,作者并不认为这种关系是这种关系的一部分。可能作者保留了聚合类型的关系来表示一种特定的编程语言结构,而在本例中,源代码中没有使用这种结构。也许作者认为一个接口永远不能在另一个类中聚合


  • 顺便说一下,ItemOrder和ShoppingCart之间的聚合显然是错误的。我认为钻石应该在关系的另一边。

    为了回答这些问题,重要的是要知道为什么绘制这个类图。只有作者知道,但也许这只是gliffy能力的证明?否则,该模型中的类可能对应于源代码中的类,这些类是用面向对象语言(如Java或C#)编写的,并且该图旨在深入了解这些类之间的关系

  • 为什么客户订单和客户信用卡是一种关联,而不是像客户地址那样的聚合

    显然,作者并不认为这些关系是关系的一部分。可能客户在源代码中没有任何订单或信用卡的参考。可能地址信息属于类别客户的责任,但订单和信用卡信息不属于类别客户的责任

  • 如果没有订单,ItemOrder就不存在,为什么Order ItemOrder不是合成

    也许作者只使用了UML的一个子集,而没有按照约定使用组合。也许作者认为聚合和合成之间的区别对于本图而言并不重要

  • 为什么ItemOrder项不是聚合

    显然,作者并不认为这种关系是这种关系的一部分。可能作者保留了聚合类型的关系来表示一种特定的编程语言结构,而在本例中,源代码中没有使用这种结构。也许作者认为一个接口永远不能在另一个类中聚合

  • 顺便说一下,ItemOrder和ShoppingCart之间的聚合显然是错误的。我认为钻石应该在关系的另一边