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