Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        2年前关闭。
                                                                                            
                
        
我正在为学校项目构建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);
    }

}


这两个类都是可序列化的,并且从头开始加载到程序中,并在末尾再次保存。基本上,我想知道这是否是执行此操作的最佳方法,对我来说,这似乎很杂乱,有些草率。我最近一直在研究一些设计模式,但是又一次,我不确定该怎么做。

最佳答案

我认为处理多对多关系的正确方法是创建关联类,在这种情况下,您可以创建第三类Student_skill,其中可以放置有关学生及其技能的方法和属性。
我还认为您应该养成在类中使用唯一ID的习惯,使用名称作为ID绝不是最佳选择。

关于java - 如何正确处理OOP中的多对多关系? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45655261/

10-11 03:37