-
泛化關系(generalization)(IS A)
-
實現關系(realize)(IS A)
-
聚合關系(aggregation)(has-a)
-
組合關系(composition)(contains-a)
-
關於聚合和組合的區分:其關鍵點就是整體和部分的生命周期是否一致這個條件。(深入思考:當整體的生命周期結束后,不會受到質變,也不會受到任何 對生命周期有影響的改變。例如 電腦 和CPU, 相反 例如 人體 和四肢)
-
關聯關系(association)
- 解釋:它描述不同類的對象之間的結構關系,是處於同一種層次;它是一種靜態關系, 通常與運行狀態無關,一般由常識等因素決定的;它一般用來定義對象之間靜態的、天然的結構; 所以,關聯關系是一種“強關聯”的關系;
不存在依賴關系的偶然性、關系也不是臨時性的,一般是長期性的。代碼體現:表現在代碼層面,為被關聯類B以類屬性的形式出現在關聯類A中,也可能是關聯類A引用了一個類型為被關聯類B的全局變量。 - eg:A引用了B作為屬性
- 類圖:
-
依賴關系(dependency)
- 解釋:它描述不同類的對象之間的結構關系,是處於同一種層次;它是一種動態關系,與關聯關系不同的是,它是一種臨時性的關系,通常在運行期間產生,並且隨着運行時的變化; 依賴關系也可能發生變化;
代碼體現:例如如果A依賴於B,則B體現為局部變量,方法的參數、或靜態方法的調用。 - eg:A中的方法調用了B
- 類圖:
- 解釋:它描述不同類的對象之間的結構關系,是處於同一種層次;它是一種動態關系,與關聯關系不同的是,它是一種臨時性的關系,通常在運行期間產生,並且隨着運行時的變化; 依賴關系也可能發生變化;