4
两个具有相同签名的接口
我正在尝试为纸牌游戏建模,其中纸牌具有两项重要功能: 首先是效果。这些是您玩纸牌时对游戏状态所做的更改。效果界面如下: boolean isPlayable(Player p, GameState gs); void play(Player p, GameState gs); 而且,当且仅当您能够支付费用且其所有效果均是可玩的时,您才可以考虑使用该卡。像这样: // in Card class boolean isPlayable(Player p, GameState gs) { if(p.resource < this.cost) return false; for(Effect e : this.effects) { if(!e.isPlayable(p,gs)) return false; } return true; } 好的,到目前为止,非常简单。 卡上的另一组功能是异能。这些功能是对游戏状态的更改,您可以随意激活它们。当提出这些接口时,我意识到他们需要一种确定是否可以将其激活的方法,以及一种用于实现激活的方法。最终被 boolean isActivatable(Player p, GameState gs); void activate(Player p, …
13
interfaces