【问题标题】:What is the relationship between a card and deck in a Class Diagram (Texas Hold 'em)?Class Diagram(Texas Hold'em)中的牌和牌组之间的关系是什么?
【发布时间】:2014-09-29 23:16:36
【问题描述】:

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

【问题讨论】:

  • 在类图中,可能没有关系。 Deck 类可能有一个属性 Cards,它是某种类型的集合,其中项目类型为 Card

标签: uml class-diagram object-relationships


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    根据 Jim L. 的描述,我们可以制作以下领域模型:

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

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

    1. (独立于解决方案)领域建模
    2. (独立于平台)设计建模
    3. (特定于平台的)数据建模

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2012-01-30
      • 2012-08-12
      • 2023-03-18
      • 1970-01-01
      • 2020-11-14
      相关资源
      最近更新 更多