UML基本使用--類圖

背景

一方面隨著項目組件化的進(jìn)行,越來越多的模塊需要輸出更為詳細(xì)與易理解文檔,而在描述文檔的時候或多或少會加入類與類之間關(guān)系的描述。另一方面是如果在需求預(yù)言的時候,在涉及到較大的模塊的情況,
如果能首先輸出類圖的話,會更好的體現(xiàn)出模塊的代碼結(jié)構(gòu)是否合理,所以為了更好的統(tǒng)一大家在使用UML的描述方式,本文在此對使用UML繪制 iOS 下的類圖做簡要介紹

推薦工具:點擊下載StarUML

基本概念

類圖是面向?qū)ο缶幊讨凶畛S煤妥钪匾膱D。類圖主要是用來描述項目中的類,接口,以及它們之間的結(jié)構(gòu)和關(guān)系。類圖的3個基本組件:類名,屬性,方法。在描述方法時可以通過在方法下面添加一個橫線來區(qū)分類方法和實例方法,以及在后面添加 readOnly 來表明只讀屬性

UMLClass

接口(協(xié)議):

UMLProtocol

在UML類圖中,常見的有以下幾種關(guān)系:繼承(Generalization),實現(xiàn)(Realization),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)

  • 1.繼承(Generalization)

【定義】:表示的是子類和父類的關(guān)系,例如貓和動物的關(guān)系一樣
【描述方式】:帶三角箭頭的實現(xiàn),箭頭指向父類

UMLGeneration
  • 2.實現(xiàn)(Realization)

【定義】:描述的是一種類與接口(協(xié)議)的關(guān)系

【描述方式】:用帶三角箭頭的虛線表示,箭頭指向接口。

UMLRealization
  • 3.關(guān)聯(lián)(Association)
    【定義】:是一種擁有關(guān)系,它使得一個類知道另一個類的屬性或方法;分為雙向關(guān)聯(lián)和單向關(guān)聯(lián)。例如老師和學(xué)生是雙向關(guān)聯(lián),老師可以有多名學(xué)生,學(xué)生也可以有多名老師;但學(xué)生和課程之間就是單向關(guān)聯(lián)的,一個學(xué)生可以有多門課程上,但是課程不擁有學(xué)生。
    【描述方式】:雙向關(guān)聯(lián)的關(guān)系用一條直線連接兩個類,并在兩頭標(biāo)注數(shù)量對應(yīng)關(guān)系(1:n或者n:n);單向關(guān)聯(lián)關(guān)系用一個普通的箭頭連接兩個類,箭頭指向被擁有者。
    【備注】:這種普通的關(guān)聯(lián)關(guān)系感覺在 iOS 中用的比較少,基本都是用下面三種更為特殊的關(guān)聯(lián)關(guān)系,聚合,組合,依賴
UMLAssociation
  • 4.聚合(Aggregation)
    【定義】:是一種整體與部分的關(guān)系,并且部分可以離開整體而單獨存在,好比汽車和輪胎是整體和部分的關(guān)系,但輪胎離開車任然可以存在。聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是一種強關(guān)聯(lián)關(guān)系
    【描述方式】:帶空心菱形的實心線表示,菱形指向整體
UMLAggregation

【備注】:聚合的方式還可以用來表示 iOS 中某個聲明在 VC 或者 view 中的協(xié)議(反正不是單獨創(chuàng)建一個protocol文件那種)以 MPINewUserCell類來介紹,該類中定義了一個 MPINewUserCellDelegate給外界使用表示方式可以:

UMLDelegate
  • 5.組合(Composition)
    【定義】:是整體與部分的關(guān)系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關(guān)系,沒有公司就不存在部門。組合關(guān)系也是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強的關(guān)聯(lián)關(guān)系。
    【描述方式】:帶實心菱形的實線,菱形指向整體
UMLComposition
  • 6.依賴(Dependency)
    【定義】:依賴關(guān)系是一種使用關(guān)系,即一個類做某件事情需要另一個類的協(xié)助,但不是把另一個類作為自己的屬性;例如下載素材的 manager 類和下載的素材material之間的關(guān)系就是依賴關(guān)系,manager僅僅是使用material,并沒有把它定義為自己的一個屬性
    【描述方式】:帶箭頭的虛線指向被使用者
UMLDependency

示例

下面以隨便一個素材模塊為示例畫出其類圖:

UMLDemo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在UML類圖中,常見的有以下幾種關(guān)系:泛化(Generalization),實現(xiàn)(Realization),關(guān)聯(lián)(...
    mocobk閱讀 1,357評論 0 1
  • UML類圖用來定義系統(tǒng)中的類,包括描述類的結(jié)構(gòu)和類之間的關(guān)系。類圖的主要作用于描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。先看一張圖(圖片...
    Josaber閱讀 6,283評論 0 5
  • 忘記了uml類圖連線之間的關(guān)系,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 2,006評論 0 2
  • 1、概述 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《U...
    liumw1203閱讀 6,379評論 0 7
  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,509評論 0 14

友情鏈接更多精彩內(nèi)容