我意识到将不同类型的对象放入一个集合中通常是一个坏主意,我可以通过将类型设置为“对象”来做到这一点,但我有一种情况我想不出替代方案,并且是希望别人可以。
情况:在游戏的一回合结束时,我希望玩家有效地从牌库中捡起一张牌。该卡将是三种类型的卡之一。通常这张牌会进入玩家的手中并允许玩家执行标准动作,但我希望玩家有机会获得一张特殊的牌,其动作特定于该牌,并且有机会玩家得到一张立即采取行动而不是进入玩家手中的牌。这些类型的卡片没有任何共同点,所以有一个通用的界面似乎没有意义,但我希望它们在牌组中随机混合,所以我想把它们都放在一个集合中。
有没有人有任何设计建议?(我对 OO 设计比较陌生)