Какая связь между картой и колодой в диаграмме классов (Техасский Холдем)?

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

2 ответа

На основе описания Джима Л. мы могли бы сделать следующую модель предметной области:

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

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

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

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

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

Другие вопросы по тегам