我目前正在设计 Java 游戏,并且遇到了类之间循环依赖的问题。这是我当前问题的(简化)示例:
class Game
class Player
class Ability
游戏有玩家,而玩家又拥有能力(例如咒语或攻击)。能力有一个方法,如:
public void perform(Player source, Game game);
问题是能力需要了解游戏(和玩家/游戏对象)才能执行其操作。有没有办法解决这个问题?
更新:我感谢您的回复。我现在看到技能不应该真正由玩家拥有。我很难弄清楚如何将玩家和能力联系起来。例如,像口袋妖怪这样的游戏,每个生物都有可以使用的能力。或者以收藏卡牌游戏为例,其中每张卡牌都可以具有影响游戏任何部分的能力。必须有某种方法来确定哪些玩家(或任何使用能力的对象)可以使用哪些能力,即使这些能力不直接由玩家拥有。