UML:如何在Java中实现Association类

我有这个UML协会类。注意:水平线是实线,垂直线是虚线。

 ---------                  ---------

| |*(a) *(b)| |

| CLASS |________________| CLASS |

|STUDENT | | | COURSE |

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

|*(c)

______|______

| |

| |

| CLASS |

| TRANSCRIPT |

|_____________|

我了解这种关系,但是在实现此UML进行编码时遇到了一些问题。我可以实现类Student与类之间的关系Course以进行编码。这是我的代码:

class Student {

Vector<Course> b;

}

class Course {

Vector<Student> a;

}

但是,在课堂上Transcript,我对如何在代码中使用此类不太了解。是阶级Student和阶级的财产吗Course?因此,如果是这样,那么代码将是:

class Student {

Vector<Course> b;

Vector<Transcript> c;

}

class Course {

Vector<Student> a;

Vector<Transcript> c;

}

是真的吗 如果这是错误的,请教我如何实现此UML。

谢谢 :)

回答:

首先,不要使用Vector,因为它是一个古老的类,不应再使用10年以上。使用SetList

如果Transcript班级包含有关学生参加课程的方式的信息(例如,其订阅课程的日期),则可以这样实现:

class Student {

Set<Transcript> transcripts;

}

class Transcript {

Student student;

Course course;

Date subscriptionDate;

}

class Course {

Set<Transcript> transcripts;

}

这不会阻止您在Student中提供一种返回其所有课程的方法:

public Set<Course> getCourses() {

Set<Course> result = new HashSet<Course>();

for (Transcript transcript : transcripts) {

result.add(transcript.getCourse());

}

return result;

}

如果Transcript不包含任何信息,则可能可以对如何在数据库表中映射这些类进行建模,其中在两个表之间进行多对多关联的唯一方法是使用持有ID的联接表。两个关联的表。

以上是 UML:如何在Java中实现Association类 的全部内容, 来源链接: utcz.com/qa/401288.html

回到顶部