每乙個開發人員都應該懂的 UML 規範

2021-09-21 18:07:43 字數 2205 閱讀 8056

在團隊協作過程中最常見的就是開會、開會最常用的就是圖,而圖中最常見的就是流程圖、時序圖、類圖,這三個圖可以清楚的描述你想解釋的內容。

學好類圖不僅僅能幫助自己更清楚的梳理業務,還能提高開會效率。但是話說回來,你是否真的看懂別人畫的圖了?或者你真的會畫嗎?今天就和大家一起學習一下怎麼畫類圖。

乙個公司下面有很多部門,公司和部門是不可分割的。

碼農屬於乙個部門,但是如果部門解散了,碼農依然依然是碼農。

碼農無時無刻在用手機,只有工作時間才會使用 mac。

mac 是一種電腦,電腦是「可計算處理器」的一種實現。

下面我們就逐一介紹下這些關係。

泛化關係(generalization)

泛化關係為 is-a 的關係;兩個物件之間如果可以用 is-a 來表示,就是泛化關係。

泛化關係用一條帶空心箭頭的直接表示。如圖為例, mac 和電腦就是泛化關係,通常在程式裡面泛化表現為繼承於非抽象類。

實現關係(realization)

實現關係用一條帶實心箭頭的虛線表示。如圖為例,電腦和可計算處理器就是實現關係,通常程式裡面實現關係表現為繼承抽象類。比如我們平時寫的 readable,printable等介面的實現。

關聯關係(association)

關聯關係通常用一條直線表示,當然如果需要標明方向可以新增箭頭。它是描書不同的類物件之間的關係,通常不會隨著狀態的變化而變化,可以理解為被關聯者屬於關聯者的一部分。如圖為例,手機就是碼農的一部分,不會因為他上班與否而變化所屬關係。通常情況在程式裡面以類變數的方式表現。

聚合關係(aggregation)

聚合關係用一條帶空心菱形箭頭的直線表示,如圖碼農和部門就是聚合關係。與組合關係不同的是,整體和部分不是強依賴的,即使整體不存在了,部分仍然存在。如圖為例, 部門撤銷了,碼農換乙個工作還是碼農嘛。

組合關係(composition)

組合關係用一條帶實心菱形箭頭直線表示,與聚合關係一樣,組合關係同樣表示整體由部分構成的關係,不同之處在於整體和部分是強依賴關係,如果整體不存在了,部分也不復存在。如圖為例,如果公司倒閉了,那麼何來部門呢?

關聯、聚合、組合之間的關係

這三者之間的關係有點費解,不過看看這個圖應該就明白了

依賴關係(dependency)

依賴關係是用一套帶箭頭的虛線表示,他通常描述乙個物件在執行期間會用到另乙個物件的關係。如圖為例碼農只有在工作的時候才會用到 mac 電腦,所以這種依賴關係是依賴於執行狀態的。通常情況下是在程式裡面通過建構函式、形參等體現。

回顧總結

到這裡我們再次回顧一下開篇的是不是更加理解裡面的連線了?所以我們在繪圖過程中一定要非常注意這個線和箭。

不過話說回來,死記硬背這些東西確實很難,於是我自己想了乙個打油詩,幫助自己來記憶,你也可以來試一下。

實箭泛化虛實現

虛線依賴實關聯

空菱聚合實組合

專案溝通圖常見

每乙個開發人員都應該懂的 UML 規範

在團隊協作過程中最常見的就是開會 開會最常用的就是圖,而圖中最常見的就是流程圖 時序圖 類圖,這三個圖可以清楚的描述你想解釋的內容。學好類圖不僅僅能幫助自己更清楚的梳理業務,還能提高開會效率。但是話說回來,你是否真的看懂別人畫的圖了?或者你真的會畫嗎?今天就和大家一起學習一下怎麼畫類圖。乙個公司下面...

每乙個開發人員都應該有一款自己的App

謀哥每天一乾貨 這篇文章不是雞湯,是謀哥自己的感悟了。謀哥近期每日一乾貨。堅持每天寫。才發現這個事情你要是能堅持一年超級難。365天無論颳風下雨。心情好或不好,生病或生氣,每天堅持真是一種挑戰。謀哥寫了非常多文章 初中就寫過幾萬字的 同一時候發現非常多微價值的朋友也開始寫文章,都想把自己打造成為某個...

每個開發人員都應該知道的10個Linux命令

返回乙個指定檔案的資訊。例如,你可以用它來輸出乙個檔案的尺寸資訊。file logo.png輸出結果 png image data,16 x 16,8 bit color rgba,non interlaced你如何監控linux系統中發生了什麼?這三個命令可以幫上大忙 iotop 將程序按磁碟寫次...