什么是汇总?

时间:2014-03-11 02:34:35

标签: uml aggregation

在他的“快速通道UML 2.0”一书中描述自聚合时,作者就像“自聚合结构在某些情况下很有用,例如那些涉及”汇总“的情况用于报告目的。” 我不明白汇总是什么,因此自我聚合本身的概念。 有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

自聚集

  • 首先,我们应该记得,有三种聚合:compositesharednone。显然,不聚合不是我们的情况。
  • 复合聚合意味着,该项目实例仅在存在复合聚合和容器时存在。如果容器和项具有相同的类型,我们可以说这是同一类节点树的图。
  • 共享聚合会导致更多问题。
    • 第一个问题是,共享聚合通常被称为简单聚合而不是组合。这个错误发生在众所周知的UML工具(VP-UML),SO上的书籍和帖子中。不知道上下文很难知道,作者通过聚合意味着什么 - 所有三种类型,只有非无类型(复合+共享),或者只有共享聚合。我将根据UML标准采用最后一个变体。
    • 第二个问题是UML中的共享聚合没有严格定义。但我们都知道,传统上它意味着某个类的实例在某种意义上包含或引用另一个类的多个实例。如果我们谈论自我聚合,这两个类是相同的。
  • 想象一群国际象棋选手。他们每次都打过一次或多次,直到其中一人获胜。对于每个玩家,你都有一个失败者名单 - 那些失败的玩家。

enter image description here

粉红色的椭圆形是玩家,箭头表示失败者,自我聚合足以用于类图。

至于汇总,你可以使用它们来计算每个玩家的输家输家数。在Oracle或其他一些数据库中,您可以通过一个Select来实现,包含该单词ROLLUP。在数据库中,该术语没有特殊意义,只要您不使用该名称执行您的功能。


  

我收集自我聚合就像一套说(a,b,c)的方式   本身的子集对吗?

  • 不完全是。我们不能说这是它自己的元素。句子应该更弱。这意味着,一组CAN是它自己的元素。

答案 1 :(得分:0)

我认为他可能指的是一个对象可以包含同一个类的对象的结构。考虑二叉树(或链表)的经典定义,其中树由节点组成(包含值,对左子树和右子树的引用),其中每个节点可以引用其他节点。

他引用的聚合似乎是函数,例如SQL中的ROLLUP函数,以及计算所有元素,产品,平均值等之和的每个函数。

相关问题