uml定義的關係主要有:泛化、實現、依賴、關聯、聚合、組合,這六種關係緊密程度依次加強,分別看一下
概念:泛化是一種一般與特殊、一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動物的子類。
表示方法:空心三角形箭頭的實線,子類指向父類
概念:實現是一種類與介面的關係,表示類是介面所有特徵和行為的實現,在程式中一般通過類實現介面來描述
表示方法:空心三角形箭頭的虛線,實現類指向介面
概念:是一種使用的關係,即乙個類的實現需要另乙個類的協助,所以要盡量不使用雙向的互相依賴,在程式中一般表現為類a中的方法需要類b的例項作為其引數或者變數,而類a本身並不需要引用類b的例項作為其成員變數。
表示方法:虛線箭頭,類a指向類b。
概念:表示類與類之間的聯接,它使乙個類知道另乙個類的屬性和方法,這種關係比依賴更強、不存在依賴關係的偶然性、關係也不是臨時性的,一般是長期性的,在程式中被關聯類b以類屬性的形式出現在關聯類a中,也可能是關聯類a引用了乙個型別為被關聯類b的全域性變數
表示方法:實線箭頭,類a指向類b
概念:聚合關聯關係的一種特例,是強的關聯關係。聚合是整體和個體之間的關係,即has-a的關係,整體與個體可以具有各自的生命週期,部分可以屬於多個整體物件,也可以為多個整體物件共享。程式中聚合和關聯關係是一致的,只能從語義級別來區分;
表示方法:尾部為空心菱形的實線箭頭(也可以沒箭頭),類a指向類b
概念:組合也是關聯關係的一種特例。組合是一種整體與部分的關係,即contains-a的關係,比聚合更強。部分與整體的生命週期一致,整體的生命週期結束也就意味著部分的生命週期結束,組合關係不能共享。程式中組合和關聯關係是一致的,只能從語義級別來區分。
表示方法:尾部為實心菱形的實現箭頭(也可以沒箭頭),類a指向類b
我所理解的OOP UML六種關係
uml定義的關係主要有 泛化 實現 依賴 關聯 聚合 組合,這六種關係緊密程度依次加強,分別看一下 概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動...
OOP UML六種關係
uml定義的關係主要有 泛化 實現 依賴 關聯 聚合 組合,這六種關係緊密程度依次加強,分別看一下 概念 泛化是一種一般與特殊 一般與具體之間關係的描述,具體描述建立在一般描述的基礎之上,並對其進行了擴充套件。在程式中是通過繼承類實現的。比如狗是對動物的具體描述,在物件導向設計的時候一般把狗設計為動...
UML六種關係
大話設計模式的學習已經進行了好長的一段時間,通過學習設計模式,發現類圖非常重要,當然類圖的關係依然重要,那麼接下來就再來學習一下類圖的關係。首先就從我覺得見的最多的來分享吧,第乙個就是泛化。特點 三角箭頭 實線 箭頭指的方向為父類 特點 三角箭頭 虛線 箭頭指向介面 是一種使用關係,即乙個類的實線需...