UML基本使用--類圖

背景

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

推薦工具:點(diǎn)擊下載StarUML

基本概念

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

UMLClass

接口(協(xié)議):

UMLProtocol

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

  • 1.繼承(Generalization)

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

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

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

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

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

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

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

示例

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

UMLDemo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鳄橘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芒炼,更是在濱河造成了極大的恐慌瘫怜,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件本刽,死亡現(xiàn)場(chǎng)離奇詭異鲸湃,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)盅安,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門唤锉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人别瞭,你說(shuō)我怎么就攤上這事窿祥。” “怎么了蝙寨?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵晒衩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我墙歪,道長(zhǎng)听系,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任虹菲,我火速辦了婚禮靠胜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己浪漠,他們只是感情好陕习,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著址愿,像睡著了一般该镣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上响谓,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天损合,我揣著相機(jī)與錄音,去河邊找鬼娘纷。 笑死嫁审,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的失驶。 我是一名探鬼主播土居,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼嬉探!你這毒婦竟也來(lái)了擦耀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涩堤,失蹤者是張志新(化名)和其女友劉穎眷蜓,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胎围,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吁系,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了白魂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汽纤。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖福荸,靈堂內(nèi)的尸體忽然破棺而出蕴坪,到底是詐尸還是另有隱情,我是刑警寧澤敬锐,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布背传,位于F島的核電站,受9級(jí)特大地震影響台夺,放射性物質(zhì)發(fā)生泄漏径玖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一颤介、第九天 我趴在偏房一處隱蔽的房頂上張望梳星。 院中可真熱鬧赞赖,春花似錦、人聲如沸丰泊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瞳购。三九已至,卻和暖如春亏推,著一層夾襖步出監(jiān)牢的瞬間学赛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工吞杭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盏浇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓芽狗,卻偏偏與公主長(zhǎng)得像绢掰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子童擎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 在UML類圖中滴劲,常見的有以下幾種關(guān)系:泛化(Generalization),實(shí)現(xiàn)(Realization),關(guān)聯(lián)(...
    mocobk閱讀 1,093評(píng)論 0 1
  • UML類圖用來(lái)定義系統(tǒng)中的類顾复,包括描述類的結(jié)構(gòu)和類之間的關(guān)系班挖。類圖的主要作用于描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。先看一張圖(圖片...
    Josaber閱讀 6,065評(píng)論 0 5
  • 忘記了uml類圖連線之間的關(guān)系芯砸,記錄一下萧芙。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類與類之間最常用的...
    cutieagain閱讀 1,814評(píng)論 0 2
  • 1、概述 在UML 2.0的13種圖形中假丧,類圖是使用頻率最高的UML圖之一双揪。Martin Fowler在其著作《U...
    liumw1203閱讀 6,095評(píng)論 0 7
  • 在UML 2.0的13種圖形中,類圖是使用頻率最高的UML圖之一包帚。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,206評(píng)論 0 14