我在UML中遇到了组合
和聚合
关系的一些问题,我确实理解整体/部分关系,所以如果一个类不能没有它的整体而存在,那么它就成为一个强的组合关系,如果它仍然可以没有它的整体而存在,那么它就成为一个弱的聚合关系。
然而,当处理真正的软件需求时,有时会变得更加棘手。我有一个下面的类图,包括所有必要的属性、操作和特性,它们都正确地显示在UML标准中,但是我不确定我的关系:
1 接口和 6 类
有人可以确认我的关系是否正确吗?
非常感谢
反之亦然。黑色菱形应该在边上,持有或简单地是来自连接的另一边的物体的集合。
此外,居住者可以在没有位置的情况下存在(冒险前的探险家),因此它是聚合依赖,而不是组合。至于迷宫,迷宫是位置的组合,好吧。 探索者对石头的依赖又是聚合 - 石头可以很容易地没有资源管理器。
另外,我不确定石头应该直接从居住者那里下来。我会定义 CaveObject 类(因为 Object 已经很忙了),并从中派生出 Stone 和 Occupant,从最后一个派生 Snake 和 Explorer。我会添加一个接口 TemporaryOccupant,并让 Explorer 来实现它。在该界面中,我将放置从一个位置移动到另一个位置的函数。
至于物种/蛇,恐怕我迷路了——什么属于什么?相反,物种应该是另一个接口,蛇和探险家都应该实现它。
顺便说一句,我在这里看到另一个错误:您将蛇和物种连接起来 - 它已经是其他类的属性与另一个类的类型。不要将其声明为类矩形中的另一个参数。
您的资源管理器只有getter for Name,但没有Setter。您的Dro()没有参数来设置要删除的内容。
有几个问题。构图最好的例子是迷宫到位置。你的连接器的菱形装反了。由其他类组成的类有菱形,所以迷宫由位置组成。梅兹应该有钻石。物种与蛇的关系是可疑的,因为除了蛇之外还有许多物种,而物种并不是由蛇组成的。我也不认为探险家是由石头组成的。探险家-石头关系是直接的(如果我理解你的应用)一对多关系。我还会在图中添加多样性,以明确1:1、1:many等。请更正您的图表并重新发布。
因此,我对UML图中的关联、聚合和组合有一些疑问。以下是一些场景: > 产品评审对产品评审的评级组成。这意味着对于每一个产品评审等级必须有产品评审?如果产品评审不存在,评审评级就没有意义。 客户NRIC协助推车和订货。我们不能使用聚合,因为如果客户不存在,购物车和订单也不存在。 有人能帮我检查一下我的关系是否正确吗?因为我对聚合和关联有点困惑,所以用关联来链接所有的表是好的吗。我不知道什么时候该用
我开始研究 OOAD,我很难找到一个 代码示例来说明如何以编程方式实现、和。(到处都有几篇文章,但它们与 C# 或 Java 有关)。我确实找到了一两个例子,但它们都与我的导师的指示相冲突,我很困惑。 我的理解是,在: < li >关联:Foo有一个指向Bar对象的指针作为数据成员 < li >聚合:Foo有一个指向Bar对象的指针,Bar的数据被深度复制到该指针中。 < li >组成:Foo有一
我有两个问题要问。所以我们假设有一个类a和B,它们的定义如下。 1. 所以类A与变量b有组合关系,与变量其他B有聚合关系。我如何在UML图中画这个。 2.以下情况是否仍然是复合关系?
我有以下代码: 在Bouml中,我从这段代码中生成了类图: 图表 我认为 A 和 F 之间的 (https://softwareengineering.stackexchange.com/questions/255973/c-association-aggregation-and-composition) 关系必须产生聚合关系,但它产生了关联关系。如何建立聚合关系?
问题内容: 我试图理解这些术语的含义。我举了一些例子,例如: 汇总:Facebook 有一个 用户 组成:facebook 中的 每个用户 都有一个 会话。 协会:人们 使用 浏览器 但是我对 具有 和 使用我的 示例感到困惑。为什么不能是用户 使用 Facebook帐户或Facebook 使用 会话来认证用户? 就OOP而言,这是错误的吗?我在哪里想念这个概念? 问题答案: 该 使用 关系意味着
因为聚合和组成是相关的关联,或者我们可以说它给出了对对象或其他任何东西之间关系的理解。 我发布这个问题是因为我在采访中问了一个问题,什么是组成和聚合。 所以根据我的理解,我给出了我的想法,如下所示。 http://www.coderanch.com/t/522414/java/java/Association-Aggregation-Composition 聚集、关联和组合 Java中的关联、聚合