2014-09-29 1 views
1

Какова связь между картой и колодой в диаграмме классов (Texas Hold' em)? Я все еще пытаюсь понять, как отношения работают на диаграмме классов. Если колода состоит из карт, разве это не композиция, учитывая, что удаление колоды удалит карты? Существует случай, когда вы можете удалить колоду, но все еще иметь карту, и это будет считаться агрегацией. Поэтому мой разум ошеломляет эту концепцию. Может ли кто-нибудь объяснить это мне примером?Какова связь между картой и колодой в диаграмме классов (Texas Hold' em)?

+0

В диаграмме классов, возможно, нет отношений. Класс 'Deck' может иметь свойство' Cards', которое представляет собой коллекцию некоторого типа, где тип элемента был «Card». – jmcilhinney

ответ

1

Разработчики упускают из виду цель ОО. Диаграмма классов должна резонировать с областью реального мира. В области Техасского холдема на палубе содержится до 52 карт, а карта - до одной колоды. Если я правильно помню, карту можно также удерживать до одной руки или положить на стол. Это то, что вы должны моделировать, а не детали реализации.

Хотя можно было моделировать отношения между колодой и картами в качестве композиции, я сомневаюсь, что добавляет какую-либо ценность. Когда в последний раз вы подожгли колоду, взяв с собой все Карты? По сути, вы добавляете и удаляете Карты с колоды, и вы перетасовываете колоду, пока игра не закончится.

1

Основываясь на описании Jim L. мы могли бы сделать следующую модель предметной области: enter image description here

В этой модели связь между Deck и Card моделируется в виде композиции, потому что карта является частью палубы и нельзя разделить с другой колодой (обратите внимание, что неравномерность является определяющей характеристикой композиции, а не зависимостью жизненного цикла).

Я хотел бы добавить к тому, что сказал Джим Л., что диаграмма классов может быть использована на всех трех уровнях моделирования:

  1. (решение-indepnedent) моделирование домена
  2. (платформа-независимый) дизайн-моделирование
  3. (моделирование конкретных данных) моделирование данных