日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简介UML类图

發布時間:2025/3/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简介UML类图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閱讀原文請訪問我的博客BrightLoong's Blog UML全稱**Unified Modeling Language **又稱統一建模語言或標準建模語言。我們再學習各種框架或者設計模式之類的時候經常會看到UML類圖,這里將UML類圖一些基本點做一個記錄。

在文章中所涉及到的UML類圖是使用starUML工具創建,使用其他工具創建會有所不同。

總體印象

上面的UML類圖基本展示了UML類圖的大部分元素,以及類與類之間的關系,下面將對其一一進行解釋。

NOTE

UML類圖注解的表示方法,如上右半部所示。

類結構表示

類的表示方法如圖,一般分為三層,從上到下依次為類名、屬性和方法。接口表示和類的表示類似,只是在上面標明了是interface(這只是表示接口的一種方式,并且不同的工具展現方式可能不同,還有一種棒棒糖的形式,就是一個圓加一條豎線,并不常見,所以也不過多介紹),并且這里我隱藏了屬性層。如果是抽象類,在使用starUML工具創建的時候類名會以斜線表示。關于類的表示有以下幾點:

  • +:public,-:private,#:protected
  • 屬性冒號后的內容表示屬性的類型
  • 方法冒號后的內容表示屬性的返回值
  • 類型說明并不是必須的

類關系表示

實現

實現(Realization),用一個帶空心三角箭頭的虛線來表示。用來表示接口和實現類的關系。比如:Plane(飛機)和Car(汽車)都實現了接口IVehicle(交通工具)。

繼承

繼承(Generalization,也稱為泛化關系),用一個帶空心三角箭頭的實線來表示。表示父類與子類之間的關系。比如:Trunck(卡車)和Bus(公交車)都繼承自父類Car(汽車)。

關聯關系

關聯(Association),關聯關系分為以下幾種

  • 自關聯:用一頭帶箭頭的實線表示,自己指向自己
  • 單向關聯:用一頭帶箭頭的實線表示,箭頭指向被關聯類
  • 雙向關聯:用一條實線表示,或者使用雙箭頭

關聯關系表示類與類之間的聯系,是同一層次上的關系,它不像依賴關系具有偶然性和臨時性。一般情況是關聯類引用被關聯類作為全局變量。如下Human持有Name。

大多數的關聯關系都是單向的。

聚合關系

聚合(Aggregation),用一頭是空心菱形的直線表示(有些時候是一頭為空心菱形,一頭為箭頭的實線)。聚合也是關聯關系的一種,是整體和部分之間的關系,也就是has-a的關系(很多地方has-a,contains-a已經比較混亂,我理解上來看是has-a),整體包含部分,但是部分脫離整體后依然可以單獨存在。如上:Car(汽車)包含Engine(引擎),但是Engine脫離了Car依然可以獨立存在。

組合關系

組合(Composition),用一頭是實心菱形的直線表示(有些時候是一頭為實心菱形,一頭為箭頭的實線)。組合同樣是一種關聯關系,也同樣是整體和部分之間的關系,我把它理解為contains-a的關系。**和聚合的區別在于,部分脫離整體和無法單獨存在,整體和部分具有相同的生命周期,整體不存在了,部分也就消失了。**如上:Human(人類)包含Head(頭)和Body(身體),頭和身體并不能單獨存在。

依賴關系

依賴(Dependency),用一頭帶箭頭的虛線表示。表示類與類之間,一個類依賴于另一個類的定義。被依賴類的變化將會引起依賴類的變化。在java中依賴關系通常體現為,一個類使用另一個類作為局部變量,方法參數或靜態方法調用,表示為use-a。如上,Engine的方法startEngine()方法使用Gasoline(汽油)作為參數,可能是調用了Gasoline中的burn()方法。

轉載于:https://juejin.im/post/5add8e9ff265da0b92653178

總結

以上是生活随笔為你收集整理的简介UML类图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。