全網最簡:秒懂uml類與類之間的關係
阿新 • • 發佈:2019-02-09
uml類與類之間的關係
在網上查有關uml中類與類之間各線條的關係,發現各種版本的講解都不是特別的詳細,網上查詢出現最多的版本是這個:點選開啟連結,對裡面uml類圖的詳解不是特別滿意,於是通過自己整理和學習,對uml中類圖各種知識點做了個簡單的描述和總結,以Java的語句為基礎做一個簡單的總結,畢竟還是小白階段,如果有哪些不對或者不成熟的地方,還請各位大神多多指正!推薦一款用於畫uml的建模工具:ProcessOn 一款基於瀏覽器語言HTML5線上UML建模工具,屬於國內創業團隊的產品,用QQ就可以登入,建議體驗一下!官方網站:http://www.processon.com
類與類之間的六大關係:
1、依賴
2、關聯
3、泛化(繼承)
4、實現
5、聚合
6、組合
具體分析:
1、依賴:類的某個功能需要另一個類輔助才能完成
依賴是六大關係中最弱的一種關係,主要有兩種實現的方式: ①作為方法引數實現 如:人讀書(人依賴書) read(Book book){ } ②直接構建某物件 void program(Computer computer){ Computer computer = new Computer(); } 這種方法和①比起來無法改變初始值 uml圖解:
2、關聯:一個類的多個方法都需要另一個類的輔助才能完成
程式碼實現:
class Book{
private String name;3、泛化(繼承):表示一個類與另一個類是父子關係
(這個比較好理解,泛化就是java中的繼承)不明白的同學可以學習java繼承這一章,程式碼關鍵字:extends
doganimal,dog和animal就是繼承,dog是子類,animal是父類
程式碼實現:
class Animal{ }
class Dog extends Animal{ }
uml圖解:
同時介面可以繼承介面
4、實現:指的是一個class類實現interface介面(可以是多個)的功能(介面中沒有屬性);實現是類與介面之間最常見的關係;在Java中此類關係通過關鍵字implements明確標識
程式碼實現: interface A{ } clss B implements A{ } uml圖解:5、聚合:聚合是關聯關係的一種特例,他體現的是整體與部分、擁有的關係
聚合中整體與部分之間是可分離的(組合和聚合比起來就是不可分離的,是一種強關聯關係),他們可以具有各自的生命週期,部分可以屬於多個整體物件,也可以為多個整體物件共享。比如鴨子與鴨群,學生與班級都是多對一的關係,但是鴨子、鴨群、學生、班級又是可以彼此分離單獨存在的。 程式碼實現: class Student{ } calss ClassInfo{//班級有多個學生 private Student[] student; } uml圖解:6、組合:組合也是關聯關係的一種特例,這種關係比聚合更強,也稱為強聚合
組合同樣體現整體與部分間的關係,但此時整體與部分是不可分的,整體的生命週期結束也就意味著部分的生命週期結束,比如人和頭,輪胎和汽車 uml圖解:關聯、聚合和組合區別圖解:
幾種關係所表現的強弱程度依次為:組合>聚合>關聯>依賴