【发布时间】:2015-06-26 19:59:38
【问题描述】:
假设我正在开发一个非常简单的纸牌游戏。纸牌游戏有两个阶段。
第一阶段:Everone 轮流抽一张牌。 第二阶段:每个人按顺序出牌。
因此,我使用如下所示的 api 对游戏进行建模:
public class Game {
public void draw(PlayerId playerId) {
Player player = players.get(playerId);
player.drawFrom(drawDeck);
}
public void play(PlayerId playerId, CardId cardId) {
Player player = players.get(playerId);
player.playCard(cardId);
}
}
这是我的问题:Game 类有两种方法可以调用,但在任何特定时间只有一种方法有效。如果游戏处于第一阶段,则不应调用方法play。同样,如果游戏处于第二阶段,则不应调用方法draw。
在这种情况下我有什么选择?我只能考虑在不应该调用方法时抛出异常。
理想情况下,我希望客户端代码只能调用在特定时间有效的方法。关于如何做到这一点的任何想法?还是应该由客户端负责正确调用方法?
【问题讨论】:
标签: oop design-patterns