当前位置: 首页 > 面试题库 >

关联与汇总

司空瑾瑜
2023-03-14
问题内容

我复习了很多有关这些东西的信息,但是不明白它们之间有什么区别?在Fowler的UML中,Distilled说“聚合”严格意义上是没有意义的,因此作者建议不要在图表中使用它。请解释一下什么时候应该使用它们,以及它们将如何影响Java代码。


问题答案:

这是一个非常有争议的问题。正如Martin在答案中解释的那样,订单汇总了产品。这可以认为是正确的。Grady
Booch在他的“面向对象的分析和设计”中提出了一个类似的关联示例-
销售与该销售中的产品相关,反之亦然。销售不会汇总产品。因此,所有示例都应特定于域,因为从另一个角度看,关联可能变得更加特定。另一个示例是使用段落组成文档。

因此,该字段中的所有内容都强烈取决于上下文。这就是OOP。

您可以尝试将您的知识应用于要设计的特定项目。如果您还没有读过,我建议您阅读Grady Booch的书。从那以后,已经写了很多书,但仍然是《 OO
*》的圣经。



 类似资料:
  • 关联实体和关联关系属性有什么区别?在我的一本名为《现代数据库管理》(Hoffer,第11版)的书中,作者陈述了两者之间的区别。然而,它并没有真正解释为什么会有差别,相反,它只是给出了它们是如何不同的例子。 据我所知,一个有一个属性关联的关系是一个关联关系属性,并用一条虚线表示一个圆角矩形,该矩形内有该属性。而关联实体是描述关系的多个属性。两者都只能用于ER图解中的多对多关系。我的思维过程正确吗?

  • Introduction While reading source code in the Linux kernel, I often see statements like this: __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); Yes, this is inline assembly or in other words

  • 为了极端底层操作和性能要求,你可能希望直接控制 CPU。Rust 通过asm!宏来支持使用内联汇编。 asm!(assembly template : output operands : input operands : clobbers : options ); 任何asm的使用需要功能通道(需要在包装箱上加上#![feature(asm)]来允许使用)并且当然也

  • 我没有那么多的冬眠。所以,当反转和级联进入画面时,陷入一个点。我知道,inverse告诉hibernate拥有实体,该实体负责更新它们的关系,Cascade会告诉hibernate首先保存实体,然后保存其从属实体。 我只是想知道是否必须在同一个实体中声明级联="all"和反转="true"。我们可以通过其他实体中的反转和级联属性将一个声明为拥有实体吗?请说明这一点? 谢谢。

  • 我有一个用法,我想纠正单词。我有一套正确和不正确的单词[拼写错误]。我用所有的话填充了trie。我对每个词都有正确和不正确的版本。 如果我得到一个“A”字来更正, --我在trie中搜索它。如果trie有这个词,我想把这个词和这个词的正确版本联系起来。 解决方案:我可以在Trie中错误单词的最后一个节点设置单词的正确版本[“A1”]。并可将其解析为“A1”。 但是我必须在最后一个节点存储每个单词的

  • 我们也可以为相关联的实体甚至是对一个集合中的全部元素指定一个别名,这时要使用关键字 join。 from Cat as cat inner join cat.mate as mate left outer join cat.kittens as kitten from Cat as cat left join cat.mate.kittens as kittens from For