1

Class Diagram(Texas Hold'em)中的牌和牌组之间的关系是什么?我仍在尝试了解关系在类图中的工作方式。如果一副牌由卡片组成,考虑到移除一副牌会移除卡片,那不就是一个组合吗?在某些情况下,您可以移除一副牌但仍然有一张牌,这将被视为聚合。所以我对这个概念感到难以置信。有人可以举个例子向我解释一下吗?

4

2 回答 2

1

开发人员忽略了 OO 的意图。类图应该与现实世界的领域产生共鸣。在德州扑克领域,一副牌最多包含 52 张牌,一张牌最多包含在一张牌中。如果我没记错的话,一张卡片也可以用一只手拿着,或者放在桌子上。这是您应该建模的内容,而不是实现细节。

虽然可以将甲板和卡片之间的关系建模为一个组合,但我怀疑这会增加任何价值。你上一次放火烧掉卡组是什么时候?从本质上讲,您从牌组中添加和移除牌,然后将牌组洗牌,直到游戏结束。

于 2014-09-30T02:39:43.837 回答
1

根据 Jim L. 的描述,我们可以制作以下领域模型: 在此处输入图像描述

在此模型中, 和 之间的关联DeckCard建模为组合,因为卡片是牌组的一部分,不能与另一牌组共享(请注意,不可共享性是组合的定义特征,而不是生命周期依赖性)。

我想补充一下 Jim L. 所说的类图可以用于所有三个级别的建模:

  1. (独立于解决方案)领域建模
  2. (平台无关)设计建模
  3. (特定于平台的)数据建模
于 2014-09-30T23:02:48.047 回答