UML: how to implement Association class in Java

前端 未结 3 1074
感情败类
感情败类 2020-12-08 11:19

I have this UML Association class. Note that: horizontal line is a solid line and the vertical line is a dashed line.

 ---------                  ---------
|         


        
3条回答
  •  温柔的废话
    2020-12-08 11:56

    First of all, don't use Vector, as it's an old class that shouldn't be used anymore for more than 10 years. Use either a Set or a List.

    If the Transcript class contains information about the way a student attends a course (for example, the date of its subscription to the course), you could implement it like this:

    class Student {
        Set transcripts;
    }
    
    class Transcript {
        Student student;
        Course course;
        Date subscriptionDate;
    }
    
    class Course {
        Set transcripts;
    }
    

    That doesn't prevent you from providing a method in Student that returns all his courses: 

    public Set getCourses() {
        Set result = new HashSet();
        for (Transcript transcript : transcripts) {
            result.add(transcript.getCourse());
        }
        return result;
    }
    

    If Transcript doesn't contain any information, then it's probably there to model how these classes would be mapped in database tables, where the only way to have a many-to-many association between two tables is to use a join table holding the IDs of the two associated tables.

提交回复
热议问题