[英]How do I model something like this?
我遇到了機器問題,這是那些棘手的部分之一,這讓我有些困惑。
這是用例:
學生參加一節。
系統不會驗證任何計划沖突。
系統驗證學生已達到要求的先決條件。
因此,我創建了4個對象,分別稱為Student,Section,Schedule和Subject。 我只向您展示我的“主題”課程,因為這讓我感到困惑。
我感到困惑的部分是:
系統驗證學生已達到要求的先決條件。
如何正確建模? 我有一個前提條件,它是一個主題對象,但是如果主題沒有前提條件,該怎么辦? 我有些猶豫,因為我不能只做類似的事情:
Subject math01 = new Subject(1,"math01",null);
我認為在對象上傳遞null是不合適的。 我想避免nullpointer異常。 我該如何解決? :(我想我做錯了。
public class Subject {
//Each subject is worth three (3) units.
private int units = 3;
private int subjectID;
private String subjectName;
private Subject prerequisite; //<----How do I express that a subject has a prerequisite? Am I doing this right?
public Subject(int subjectID, String subjectName, Subject prerequisite) {
this.subjectID = subjectID;
this.subjectName = subjectName;
this.prerequisite = prerequisite;
}
public int getUnits() {
return units;
}
public int getSubjectID() {
return subjectID;
}
public String getSubjectName() {
return subjectName;
}
public Subject getPrerequisite(){
return prerequisite;
}
public boolean conflictWith(Subject newSubject){
return (this.subjectID == newSubject.getSubjectID());
}
}
考慮添加第二個不需要先決條件的構造函數。 然后,您不必從API客戶端傳遞null。
我還要添加一個方便的方法hasPrerequisite(),以檢查Subject是否確實具有先決條件。 這樣,API的客戶端也不必自己執行null檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.