每一個開發(fā)人員都應該懂的 UML 規(guī)范
掃描二維碼
隨時隨地手機看文章
來自:碼匠筆記
在團隊協(xié)作過程中最常見的就是開會、開會最常用的就是圖,而圖中最常見的就是流程圖、時序圖、類圖,這三個圖可以清楚的描述你想解釋的內(nèi)容。學好類圖不僅僅能幫助自己更清楚的梳理業(yè)務,還能提高開會效率。但是話說回來,你是否真的看懂別人畫的圖了?或者你真的會畫嗎?今天就和大家一起學習一下怎么畫類圖。
上圖是我模擬出來的一個場景和大家具體說一下類圖究竟應該怎么畫才對。圖中講的是這樣一個「故事」:
一個公司下面有很多部門,公司和部門是不可分割的。
碼農(nóng)屬于一個部門,但是如果部門解散了,碼農(nóng)依然依然是碼農(nóng)。
碼農(nóng)無時無刻在用手機,只有工作時間才會使用 Mac。
Mac 是一種電腦,電腦是“可計算處理器”的一種實現(xiàn)。
下面我們就逐一介紹下這些關系。
泛化關系(generalization)
泛化關系為 is-a 的關系;兩個對象之間如果可以用 is-a 來表示,就是泛化關系。
泛化關系用一條帶空心箭頭的直接表示。如圖為例, Mac 和電腦就是泛化關系,通常在程序里面泛化表現(xiàn)為繼承于非抽象類。
實現(xiàn)關系(realization)
實現(xiàn)關系用一條帶空心箭頭的虛線表示。如圖為例,電腦和可計算處理器就是實現(xiàn)關系,通常程序里面實現(xiàn)關系表現(xiàn)為繼承抽象類。比如我們平時寫的 Readable,Printable等接口的實現(xiàn)。
聚合關系(aggregation)
聚合關系用一條帶空心菱形箭頭的直線表示,如圖碼農(nóng)和部門就是聚合關系。與組合關系不同的是,整體和部分不是強依賴的,即使整體不存在了,部分仍然存在。如圖為例, 部門撤銷了,碼農(nóng)換一個工作還是碼農(nóng)嘛。
組合關系(composition)
組合關系用一條帶實心菱形箭頭直線表示,與聚合關系一樣,組合關系同樣表示整體由部分構成的關系,不同之處在于整體和部分是強依賴關系,如果整體不存在了,部分也不復存在。如圖為例,如果公司倒閉了,那么何來部門呢?
關聯(lián)關系(association)
關聯(lián)關系通常用一條直線表示,當然如果需要標明方向可以添加箭頭。它是描書不同的類對象之間的關系,通常不會隨著狀態(tài)的變化而變化,可以理解為被關聯(lián)者屬于關聯(lián)者的一部分。如圖為例,手機就是碼農(nóng)的一部分,不會因為他上班與否而變化所屬關系。通常情況在程序里面以類變量的方式表現(xiàn)。
依賴關系(dependency)
依賴關系是用一套帶箭頭的虛線表示,他通常描述一個對象在運行期間會用到另一個對象的關系。如圖為例碼農(nóng)只有在工作的時候才會用到 Mac 電腦,所以這種依賴關系是依賴于運行狀態(tài)的。通常情況下是在程序里面通過構造函數(shù)、形參等體現(xiàn)。
回顧總結(jié)
到這里我們再次回顧一下開篇的圖片是不是更加理解里面的連線了?所以我們在繪圖過程中一定要非常注意這個線和箭。
不過話說回來,死記硬背這些東西確實很難,于是我自己想了一個打油詩,幫助自己來記憶,你也可以來試一下。
實箭泛化虛實現(xiàn)
虛線依賴實關聯(lián)
空菱聚合實組合
項目溝通圖常見
所以你學會了嗎?
特別推薦一個分享架構+算法的優(yōu)質(zhì)內(nèi)容,還沒關注的小伙伴,可以長按關注一下:
長按訂閱更多精彩▼
如有收獲,點個在看,誠摯感謝
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!