0
我试图在游戏中设计类法术。如何设计一个类层次结构,该类层次结构在不实例化的情况下提供有关子类的信息
首先我有一个spelbook,这表明该法术可用于该球员
public class Player {
private List<Class<? extends Spell>> speellBook;
}
现在我创造了一些法术
public abstact class Spell {
public abstact double getDmg();
private double position x;
private double position y;
}
public class FireBolt extends Spell {
public double getDmg() { return 15; }
}
public class FrostBolt extends Spell {
public double getDmg() { return 10; }
}
现在我想展现一个关于提示玩家FireBolt,这表明这个法术在没有实例化的情况下会造成15点伤害。它应该只在玩家真正投射时实例化。
我已经想到了静态字段,但静态字段不能被真正的法术超越。
然后我想到了一个单例模式的,但因为我的当前位置存储在我的法术,也这将不工作,要么
是否有标准模式为这个?我只发现原型模式,但我需要一个单身它不会被继承
我认为你正在反思这一点,只是在玩家中存储咒语实例 – 2016-03-06 20:57:26
如果某个咒语的特定实例的伤害没有改变,引入一个静态变量来表示它有什么不对?即:对于FireBolt引入一个静态变量'fireboltDamage' – Pubudu
,因为我的通用工具提示必须能够显示任何咒语 – wutzebaer