【发布时间】:2016-09-21 08:06:17
【问题描述】:
我有一个关于如何使用我的代码制作图表的问题。
我有一个 Player 类,在这个类里面有一些方法。 我有另一个名为 HealthManager 的类,它决定玩家拥有多少生命值。
在我的 Playerclass 中,我使用一个 HealthManager 对象来做出一些决定(比如将生命值降至 0),在我的 HealthManager 类中,我使用一个 PlayerClass 对象来获取一些统计信息。
我可以将这种类型的关系称为关联吗?
【问题讨论】:
-
在 association 的情况下,
Player实例可能有 零HealthManager实例。这个可以吗?Player实例也有可能有 许多 (比如说,五个)HealthManager实例。那样可以么?如果两个的答案都是肯定的,那么它就是一个关联。我个人猜测应该是1:1的关系(每个Player只有一个HealthManager) -
两个问题: (1) 假设 Player 对象 X 使用 HealthManager 对象 Y。那么 Y 将只使用 X 进行统计,还是可以使用不同的 Player 对象 Z ? (2) 对象是否具有生命周期依赖关系,即如果关联的 Player 对象被销毁,HealthManager 对象是否会被销毁,反之亦然?
-
对于第一个问题:是的,这将是一个 1:1 的关系,每个玩家都有一个且只有一个 HealthManager。对于第二个问题,我根本没有做任何物体破坏,当我的玩家死亡时,它会在一个地方复活。所以死亡实际上是对象破坏,因为在我的代码中我没有删除我的对象
-
我想知道这种关系是否是一种组合,它是一种特定的关联形式。如果一个对象被认为是另一个对象的一部分,则使用这种类型的关联。如果后者被破坏,那么它的部分显然也被破坏了。我认为作文不适用于您的情况。
-
这听起来像是一个循环关系;也就是说,
Player依赖于HealthManager,而Player又依赖于Player来获取统计信息。关系是否有条件,即关系是否仅在某些条件下建立,例如在调用特定方法时?如果是,这种关系是如何建立的?HealthManager是否在调用Player的方法时作为参数传递?如果关系不是有条件的,则它是一个关联,它可以是组合或聚合,具体取决于相关对象的生命周期是如何控制的。