我开始创建一个基本的角色扮演游戏,我对设计有疑问。我有Character类,包括所有的统计数据和信息(如名称,角色类,等级,生命值,经验值等)。我有一个名为CharacterClass的抽象类,它有一些子类(如Fighter,Mage等)。抽象类CharacterClass拥有Character所拥有的大部分信息,但不是全部信息(例如,它没有经验值)。问题是我有一个代码重复(我通过创建一个角色类来创建一个角色(比如战士,然后将数据分配给角色的构造,增加一些),两者都有力量,生命值和getHitPoints ,例如setHitPoints。我怎么能避免这个?
Character CharacterClass (abstract)
Fighter Mage Rogue Cleric (all extend CharacterClass)
如果它有助于理解,那么当我创建一个角色时,我有这个代码:
switch (choice){
case "Fighter":
chosenClass = new Fighter();
break;
case "Rogue":
chosenClass = new Rogue();
break;
case "Mage":
chosenClass = new Mage();
break;
case "Cleric":
chosenClass = new Cleric();
break;
}
try {
hero = new Character(name, chosenClass);