Какая связь между картой и колодой в диаграмме классов (Техасский Холдем)?
Какая связь между картой и колодой в диаграмме классов (Техасский Холдем)? Я все еще пытаюсь понять, как работают отношения в диаграмме классов. Если колода состоит из карт, не будет ли это композицией, учитывая, что удаление колоды приведет к удалению карт? Существует случай, когда вы можете удалить колоду, но при этом иметь карту, и это будет считаться агрегацией. Так что мой разум поражен этой концепцией. Может кто-нибудь объяснить мне это на примере?
2 ответа
На основе описания Джима Л. мы могли бы сделать следующую модель предметной области:
В этой модели связь между Deck
а также Card
смоделирован как композиция, потому что карта является частью колоды и не может быть разделена с другой колодой (обратите внимание, что неотделимость является определяющей характеристикой композиции, а не зависимости жизненного цикла).
Я хотел бы добавить к тому, что сказал Джим Л., что диаграмма классов может использоваться на всех трех уровнях моделирования:
- (независимое от решения) моделирование предметной области
- (независимое от платформы) моделирование дизайна
- (для конкретной платформы) моделирование данных
Разработчики упускают из виду намерения ОО. Диаграмма классов должна резонировать с областью реального мира. В домене Техасского Холдема колода содержит до 52 карт, а карта содержится в одной колоде. Карту также можно держать в одной руке или положить на стол, если я правильно помню. Это то, что вы должны моделировать, а не детали реализации.
Хотя можно смоделировать отношения между колодой и картами как композицию, я сомневаюсь, что это добавляет какую-либо ценность. Когда вы в последний раз поджигали колоду, взяв с собой все карты? По сути, вы добавляете и удаляете карты из колоды и перетасовываете колоду, пока игра не закончится.