2014-09-29 30 views
1

類圖(德州撲克)中卡和牌組之間的關係是什麼?我仍然試圖瞭解這些關係如何在類圖中起作用。如果一副牌是由牌組成的,考慮到取下牌可以取出牌,這不就是一種組合嗎?有這種情況,你可以刪除一個套牌,但仍然有一張卡,這將被視爲聚合。所以我的想法是這個概念的混亂。有人可以用一個例子向我解釋這個嗎?類圖(德州撲克)中牌和牌之間的關係是什麼?

+0

在類圖中,可能沒有關係。一個'Deck'類可能有一個屬性'Cards',它是一個類型集合,其中的項目類型是'Card'。 – jmcilhinney 2014-09-29 23:29:54

回答

1

開發人員忽視了面向對象的意圖。類圖應該與現實世界的領域產生共鳴。在德州撲克的領域,甲板上最多可容納52張卡片,卡片最多可容納1張卡片。如果我記得正確,卡片也可以放在一隻手中,或放在桌子上。這就是你應該建模的東西,而不是實現細節。

雖然人們可以將甲板和卡片之間的關係建模爲構圖,但我懷疑這會增加任何價值。你最後一次點燃甲板的時間是什麼時候,拿着所有的牌?基本上,你從甲板上添加和移除牌,然後洗牌,直到比賽結束。

1

基於吉姆·L的描述,我們可以做出以下域模型: enter image description here

在這個模型中,DeckCard之間的關聯建模爲一個組合,因爲卡是甲板的一部分,不能與其他卡片共享(注意不可共享性是構圖的決定性特徵,而不是生命週期依賴性)。

我想補充一下吉姆L.說,一個類圖可以在所有三個層次建模的使用:

  1. (溶液indepnedent)域建模
  2. (平臺無關)設計造型
  3. (特定平臺)數據建模