我在java中實現1對1關聯有一個問題。例如,求索以下類圖:在java中實現1到1類
我實現這樣的:
public class Student{
private AttendanceRole attendance;
public Student(AttendanceRole attendance){
this.attendance=attendance;
addTwoWayLink(this); //creates the two-way link between objects
}
public void setAttendanceRole(AttendanceRole a){ //if a students changes from
attendance = a; //part time to full time
}
}
public class AttendanceRole{
private Student student;
void addTwoWayLink(Student student){
this.student=student;
}
}
這裏的問題是:
1)假設我創建了一個學生對象和我想要改變學生的出勤角色。在這種情況下,我調用setAttendanceRole方法。但是我必須給它一個AttendanceRole對象作爲參數。由於這是1對1的關係,我給出的參數也有一個與之相關的學生。所以,這是一個問題。此外,我不能創建一個沒有鏈接到學生的AttendanceRole對象,因爲這是1對1關聯。當我第一次嘗試創建一個學生對象並調用它的構造函數時,會出現同樣的情況。我可以給null作爲參數值,但在這種情況下,我不會傷害1對1關係約束嗎?我能做些什麼呢?
2)另外,我設計了這個類,以便我們可以創建一個學生對象並設置其AttendanceRole。我的意思是我們不能創建AttendanceRole對象並設置其學生。這是一個壞主意嗎?或者,設計師會首先創建哪個對象。
謝謝
'AttendanceRole'是否真的需要引用'Student'? – Detheroc 2013-04-24 12:45:37