Дизайн ООП для классов карточных игр

Каким будет лучший подход при разработке следующих классов с применением шаблонов проектирования?

  • Колода - addCard, deal, shuffle, getTopCard, removeTopCard, removeAllCards
  • Hand - ] addCard, removeCard, getCard, removeAllCards
  • DiscardPile - addCard, getTopCard, removeTopCard, removeAllCards
  • MeldPile - addCard, removeAllCards

(все файлы MeldPile в таблице.)

Мне кажется, что getTopCard и removeTopCard - это просто оболочка для getCard и removeCard , поскольку он просто занимает верхнюю позицию карты, затем передается в getCard или removeCard .

Стоит ли использовать композицию? шаблон стратегии? или просто создать другой класс с именем CardPile и использовать его в качестве базового класса для указанного выше класса? Очень признателен, если вы могли бы предоставить образец кода по этому поводу.

5
задан HostileFork 8 October 2012 в 04:19
поделиться