Java RPG面向对象的设计

时间:2015-10-24 08:25:51

标签: java oop

我开始创建一个基本的角色扮演游戏,我对设计有疑问。我有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);

0 个答案:

没有答案