類之間的關係是類圖中比較複雜的內容。有關聯、聚合、組合、泛化、依賴。 關聯:是模型元素之間的一種語義聯絡,是類之間的一種很弱的聯絡。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。可以給關聯加上關聯名來描述關聯的作用。關聯兩端的類也可以以某種角色參與關聯,角色可以具有多重性,表示可以有多少個物件參與關聯。可以透過關聯類進一步描述關聯的屬性、操作以及其他資訊。關聯類透過一條虛線與關聯連線。對於關聯可以加上一些約束,以加強關聯的含義。如下圖所示: 聚合是一種特殊的關聯,聚合表示整體與部分的關係。通常在定義一個整體類後,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關係。例如艦隊是由一系列的艦船組成。需求描述中“包含”、“組成”、“分為….部分”等詞常意味著聚合關係。 組合也是一種特殊的關聯,也表示類之間整體和部分的關係,但是組合關係中部分和整體具有統一的生存期。一旦整體物件不存在,部分物件也將不存在。部分物件與整體物件之間具有共生死的關係。 聚合和組合的區別:聚合關係是“has-a”關係,組合關係是“contains-a”關係;聚合關係表示整體與部分的關係比較弱,而組合比較強;聚合關係中代表部分事物的物件與代表聚合事物的物件的生存期無關,一旦刪除了聚合物件不一定就刪除了代表部分事物的物件。組合中一旦刪除了組合物件,同時也就刪除了代表部分事物的物件。 泛化定義了一般元素和特殊元素之間的分類關係,類之間的這種泛化關係也就是繼承關係。泛化關係是“a-kind-of”關係,定義一般元素和特殊元素之間的分類關係。下圖是一個泛化關係的例子。 有兩個元素如果修改X的定義可能會導致對Y的定義,則認為Y依賴X。依賴關係可能由各種原因引起,如一個類向另一個類傳送訊息,或者一個類是另一個類的資料成員型別,或者一個類是另一個類的操作的引數型別等。有時依賴關係和關聯關係比較難區分。如果類A和類B有關聯關係,它們之間必然有依賴關係。如果兩個類之間有關聯關係時不用再表示出這兩個類之間的依賴關係。
類之間的關係是類圖中比較複雜的內容。有關聯、聚合、組合、泛化、依賴。 關聯:是模型元素之間的一種語義聯絡,是類之間的一種很弱的聯絡。關聯可以有方向,可以是單向關聯,也可以是雙向關聯。可以給關聯加上關聯名來描述關聯的作用。關聯兩端的類也可以以某種角色參與關聯,角色可以具有多重性,表示可以有多少個物件參與關聯。可以透過關聯類進一步描述關聯的屬性、操作以及其他資訊。關聯類透過一條虛線與關聯連線。對於關聯可以加上一些約束,以加強關聯的含義。如下圖所示: 聚合是一種特殊的關聯,聚合表示整體與部分的關係。通常在定義一個整體類後,再去分析這個整體類的組成結構。從而找出一些組成類,該整體類和組成類之間就形成了聚合關係。例如艦隊是由一系列的艦船組成。需求描述中“包含”、“組成”、“分為….部分”等詞常意味著聚合關係。 組合也是一種特殊的關聯,也表示類之間整體和部分的關係,但是組合關係中部分和整體具有統一的生存期。一旦整體物件不存在,部分物件也將不存在。部分物件與整體物件之間具有共生死的關係。 聚合和組合的區別:聚合關係是“has-a”關係,組合關係是“contains-a”關係;聚合關係表示整體與部分的關係比較弱,而組合比較強;聚合關係中代表部分事物的物件與代表聚合事物的物件的生存期無關,一旦刪除了聚合物件不一定就刪除了代表部分事物的物件。組合中一旦刪除了組合物件,同時也就刪除了代表部分事物的物件。 泛化定義了一般元素和特殊元素之間的分類關係,類之間的這種泛化關係也就是繼承關係。泛化關係是“a-kind-of”關係,定義一般元素和特殊元素之間的分類關係。下圖是一個泛化關係的例子。 有兩個元素如果修改X的定義可能會導致對Y的定義,則認為Y依賴X。依賴關係可能由各種原因引起,如一個類向另一個類傳送訊息,或者一個類是另一個類的資料成員型別,或者一個類是另一個類的操作的引數型別等。有時依賴關係和關聯關係比較難區分。如果類A和類B有關聯關係,它們之間必然有依賴關係。如果兩個類之間有關聯關係時不用再表示出這兩個類之間的依賴關係。