java一个设计的问题
不知道有没人玩过魔兽没?呵呵
现在我想用java模拟魔兽里的一个人物角色
在魔兽里,人物分联盟、部落2个阵营,阵营之间是互相对立的
共有9个职业:战士,盗贼,法师,牧师,术士,猎人,萨满,圣骑士,德鲁伊;
共有8个种族:人类,精灵,矮人,侏儒,兽人,牛头,巨魔,亡灵;
其中人类,精灵,矮人,侏儒属于联盟阵营,兽人,牛头,巨魔,亡灵属于部落阵营
现在设想每个种族都可以选择不同的职业创建游戏角色
谁能帮助我设计一个类体系表示以上的关系啊,谢谢了
[解决办法]
这个貌似有点太复杂了吧
[解决办法]
UML
[解决办法]
一个人物类,
有两个属性。
一个是职业,一个是种族。
部落阵营可以通过一个方法从种族得到。
完
[解决办法]
首先种族,职业,阵营都是基本不变的可以设置为常量,或者说c#/c中的枚举类型.
而一个角色只能选择职业中的一种,阵营中的一种,种族中的一种,故只需要在角色类中添加三个属性即可.
再添加一个构造方法,使得每次创建角色时都能指定角色所属的阵营职业种族,同时这三个属性为只度属性.
(仅供参考)
代码如下:
package com.moshou;public interface 阵营 {//人物分联盟、部落2个阵营 String LIANMENG="联盟"; String BULUO="部落";}package com.moshou;public interface 职业 { //战士,盗贼,法师,牧师,术士,猎人,萨满,圣骑士,德鲁伊 String ZHANSHI = "战士"; String DAOZEI="盗贼"; String FASHI="法师"; String MUSHI="牧师"; String SHUSHI="术士"; String LIEREN="猎人"; String SAMAN="萨满"; String SHENGQISHI="圣骑士"; String DELUYI="德鲁伊";}package com.moshou;public interface 种族 {//人类,精灵,矮人,侏儒,兽人,牛头,巨魔,亡灵 String RENLEI="人类"; String JINGLING="精灵"; String AIREN="矮人"; String ZHURU="侏儒"; String SHOUREN="兽人"; String NIUTOU="牛头"; String JUMO="巨魔"; String WANGLING="亡灵";}package com.moshou;public class 角色 { private String 阵营; private String 职业; private String 种族; public String get阵营() { return 阵营; } public String get职业() { return 职业; } public String get种族() { return 种族; } public 角色(String 阵营, String 职业, String 种族) { super(); this.阵营 = 阵营; this.职业 = 职业; this.种族 = 种族; } @Override public String toString() { return "该角色的详细信息如下:\n" + "阵营:" + this.阵营 + "\n职业:"+this.职业+"\n种族:" + this.种族; }}package com.moshou;public class TestMoshou { public static void main(String[] args) { 角色 juese = new 角色(阵营.BULUO, 职业.DAOZEI, 种族.JINGLING); System.out.println(juese.toString()); }}