2017-04-01 14 views
0

我正在製作一個系統的類圖,用戶可以充當學生,教師或助理。到目前爲止,我已經創建了一個具有以下屬性和方法的用戶類,其中用戶可以參與具有特定角色的單個課程,也可以從特定課程中刪除。因爲用戶只能有一個角色,所以我在方括號-Participant: Role [1]中聲明瞭它。如何在類圖中指定多個選項?

但是,它表示只有一個用戶可以擁有一個角色,但並未說明用戶的不同角色。我如何在類圖中指定它。我應該創建一個新的Role課程,還是我可以在user課程中指定?

USER CLASS: 
Attributes: 
-username: String 
-password: String 
-Participant: Role [1] 
Methods: 
+participate(course: Course, role: Role): void 
+remove_user(course: Course): void 
+get_average(assignment: Assignment): int 
+0

是什麼東西阻止你接受答案? –

回答

1

您可以製作Role摘要,然後爲學生,講師和助理創建子類。這樣你只能爲每個用戶實例化一個子類。

或者,您可以使Role爲枚舉,其中每個枚舉文字都是Role的特定實例。這樣,您可以在整個系統中實例化每個Role中的一個:學生,教師和助理。

在你的系統中,應在所有用戶玩相同作用,還是應該在一個角色的每個用戶有額外的信息,比如角色被分配給用戶的日期?這個問題的答案告訴你選擇哪個選擇。

BTW,是不是用戶作爲一個學生,教師或助教的限制,曾經,有點太限制?爲什麼用戶不能在一門課程中扮演學生的角色,而在其他課程中扮演助理的角色呢?

+0

非常感謝您的解釋。你能更具描述性嗎?我應該創建一個Role類,並創建3個繼承Role類的類嗎?在這種情況下,角色類必須具有一些屬性,這是否重要? –

+0

可以使用3個子類或3個枚舉文字。這個問題實際上觸及了一個非常複雜的理論問題,它可能會讓你的眼睛捲入你的腦海,不得不處理謂詞和實體。 –

相關問題