实现组合和聚合的最佳实践
Best practice to implement composition and aggregation
当我必须在实施阶段翻译 aggregation/composition 在设计阶段绘制的 UML 图时,哪种做法被认为是最好的做法?
正如 Thomas 指出的那样,我认为没有任何明确的普遍适用的最佳实践。有太多不同的情况和不同的背景会强烈影响所选方法。
聚合和组合是分析结构,不应经常出现在设计或实施模型中,如果有的话。
可以说,aggregation/composition 的 meaning/semantics 很多人都难以理解。通常他们倾向于过度识别聚合和组合。这些实际上是 SW 系统模型中相当罕见的关系。并非每个 1:N 关系都是聚合。
在很多情况下,在UML class图中使用聚合或组合时,它只是表示关联,没有任何附加含义。因此,简单的建议是:只需将 UML 设计模型的 aggregation/composition 转换为关联,并在实现(模型)中使用合适的引用属性来实现它。
您可能想阅读我的文章 Really Understanding Association, Aggregation, and Composition。
当我必须在实施阶段翻译 aggregation/composition 在设计阶段绘制的 UML 图时,哪种做法被认为是最好的做法?
正如 Thomas 指出的那样,我认为没有任何明确的普遍适用的最佳实践。有太多不同的情况和不同的背景会强烈影响所选方法。
聚合和组合是分析结构,不应经常出现在设计或实施模型中,如果有的话。
可以说,aggregation/composition 的 meaning/semantics 很多人都难以理解。通常他们倾向于过度识别聚合和组合。这些实际上是 SW 系统模型中相当罕见的关系。并非每个 1:N 关系都是聚合。
在很多情况下,在UML class图中使用聚合或组合时,它只是表示关联,没有任何附加含义。因此,简单的建议是:只需将 UML 设计模型的 aggregation/composition 转换为关联,并在实现(模型)中使用合适的引用属性来实现它。
您可能想阅读我的文章 Really Understanding Association, Aggregation, and Composition。