我正在为一个学校项目构建一个Java应用程序,它需要一些数据才能有多对多的关系。基本上我目前有一个名为'技能'其中包含数据,如技能的简要说明。
public class Skill
{
private String name;
private String description;
private int maxLevel;
public int getMaxLevel()
{
return maxLevel;
}
public String getName()
{
return name;
}
}
我将其设为类的原因是,可以在GUI中创建和删除技能,而无需使用任何运行时类编辑。然后有一个学生班。每个学生都将所有技能都映射到一个整数值,该值表示他们在此技能中的等级。
public class Student
{
private String studentName;
private HashMap<Skill, Integer> skillMap;
public void levelUp(Skill skillToLevel)
{
int oldValue = skillMap.get(skillToLevel);
skillMap.remove(skillToLevel);
skillMap.put(skillToLevel, ++oldValue);
}
}
这两个类都是Serializable,并且在开始时加载到程序中并在最后再次保存。基本上,我想知道这是否是最好的方式,对我来说,这似乎是凌乱的,有点草率。我最近一直在研究一些设计模式但又一次,我不知道该怎么做。
答案 0 :(得分:0)
我认为在涉及manyToMany关系时正确的做事方式是创建一个关联类,在这种情况下,您可以创建一个第三类student_skill,您可以在其中放置有关学生及其技能的方法和属性。 我还认为你应该养成在课堂上使用唯一ID的习惯,使用名称作为ID并不是最佳选择。