oop - 对象集合、对象聚合、对象关联和对象组合之间有什么区别?

标签 oop repository-pattern semantics aggregation poeaa

我看到这些术语被使用,我认为我自己对它们的使用可能不正确。我想知道它们究竟有何不同。

对象集合 - ???

对象聚合 - ???

对象关联 - ???

对象组合 - ???

在谈论 ORM、数据映射器和存储库时,这些术语似乎最近出现了。例如,福勒提到 object collections here .这些术语的具体含义是什么,我应该如何在演讲中有效地使用它们?

最佳答案

对象集合

是一个比“数组”更广泛的术语,但包括“数组”。集合本身就是对象,它的主要目标是存储多个其他对象,以及取决于每种集合类型的其他特征,例如插入顺序或提取顺序,是否允许重复项等等。

对象关联

也是,一个非常通用的术语,它意味着两个对象之间存在概念上的关系。还有几种“协会”,具有更具体的目标。

对象聚合

是一个对象关联,其中一个对象与另一个对象相关。它们可以独立存在,一个的创建或销毁不会影响另一个,尽管有些操作是两个对象交互的结果。

对象组合

是一个对象关联,其中一个对象是另一个主要对象的一部分。子对象不能独立存在,通常是创建或销毁,由主对象管理。

注意:

注意:Object AggregationObject CompositionObject Association 的一种,但并不是唯一的。

关于oop - 对象集合、对象聚合、对象关联和对象组合之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175714/

相关文章:

asp.net-mvc - DbContext 错误?检索新保存的记录后导航属性为空

用于两个之间语义相似性/相关性的 Java API "WORDS"

c - 代码中的语义错误

c - 面向对象的C : Building vtables

Java Enums : Two enum types, 每个都包含对彼此的引用?

c# - 使用 MVC + 存储库模式,业务逻辑应该在哪里?

c# - 把方法放在哪里。存储库上的服务层 ( BL )?

c++ - 构造控制台菜单类层次结构的最佳方法?

design-patterns - 是否存在处理回调机制的设计模式?

seo - 在 Schema.org 中使用需求