实现组合和聚合的最佳实践

Posted

技术标签:

【中文标题】实现组合和聚合的最佳实践【英文标题】:Best practice to implement composition and aggregation 【发布时间】:2015-09-28 03:31:10 【问题描述】:

当我必须在实施阶段翻译在设计阶段绘制的 UML 图的聚合/组合时,哪种做法被认为是最好的做法?

【问题讨论】:

这显然取决于您的约束条件和您要实现的具体模型。没有这些信息,您的问题就无法得到答案。 【参考方案1】:

在许多情况下,当在 UML 类图中使用聚合或组合时,它仅表示关联,没有任何附加含义。因此,简单的建议是:只需将 UML 设计模型的聚合/组合转换为关联,并在实现(模型)中使用合适的参考属性来实现它。

您可能想阅读我的文章Really Understanding Association, Aggregation, and Composition。

【讨论】:

【参考方案2】:

正如 Thomas 所指出的,我认为没有任何明确的普遍适用的最佳实践。有很多不同的情况和不同的背景会强烈影响所选方法。

聚合和组合是分析结构,不应该经常出现在设计或实现模型中,如果有的话。

可以说,很多人很难理解聚合/组合的含义/语义。通常他们倾向于过度识别聚合和组合。这些实际上是 SW 系统模型中相当罕见的关系。并非每个 1:N 关系都是聚合。

【讨论】:

以上是关于实现组合和聚合的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则

BigQuery 表设计最佳实践:日期分区和分片的组合?

基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑

最佳管理实践MSP

当Parallel遇上了DI - Spring并行数据聚合最佳实践

Parquet 文件上 groupby 的最佳实践