实现组合和聚合的最佳实践
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.聚合和聚合根的最佳实践和原则
基于ABP落地领域驱动设计-06.正确区分领域逻辑和应用逻辑