gpt4 book ai didi

oop - 聚合、组合、关联、直接关联

转载 作者:行者123 更新时间:2023-12-02 09:04:11 25 4
gpt4 key购买 nike

我正在回顾我的面向对象编程知识。在类之间的关系主题下,我遇到了一些对我来说有点模糊的关系。

我知道依赖项“uses-a”和继承“is-a”,但我对聚合、组合、关联和直接关联有点不熟悉;另外,它们中的哪一个是“has-a”关系。有些人可以将聚合与关联互换使用。

什么是直接关联?另外,什么是组合?在 UML 图中,表示它们的箭头是不同的。如果您能为我解决这些问题,我将非常感激。

最佳答案

请注意,“关联”定义有不同的解释。我的以下观点很大程度上基于您在 Oracle 认证书籍和学习指南中读到的内容。

临时关联

A usage inside a method, its signature or as a return value. It's not really a reference to a specific object.

示例:我把车停在车库里。

Temporary Association UML

组合关联

A so-called "STRONG relationship": The instantiation of the linked object is often hard coded inside the constructor of the object. It cannot be set from outside the object. (Composition cannot be a many-to-many relationship.)

示例:房子是由石头组成的。

Composition UML

直接关联

This is a "WEAK relationships". The objects can live independent and there are usually setters or other ways to inject the dependent objects.

示例:汽车可以载乘客。

Direct Association UML

聚合关联

Very similar to a Direct association. It's also a "WEAK relationship" with independent objects. However here the associated objects are a crucial part of the containing object.

示例:汽车应该有轮胎。

Aggregation UML

注意:直接关联和聚合关联通常统称为“关联”。差异相当微妙。

关于oop - 聚合、组合、关联、直接关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21967841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com