(已廢棄)UML類圖學(xué)習(xí)

已廢棄,請(qǐng)看新版:重溫 UML 類圖

前一篇寫(xiě)了 UML 工具,接下來(lái)就該寫(xiě)寫(xiě)怎么學(xué)者寫(xiě) UML 圖了。UML 的重要性大家應(yīng)該都深有體會(huì)了把构拳,要是沒(méi)有體會(huì)說(shuō)明你的技術(shù)還是不入流的入門水平啊。最簡(jiǎn)單的梁棠,寫(xiě)不好 UML 圖置森,我讓你寫(xiě)一個(gè)復(fù)雜點(diǎn)的功能框架,你肯定抓瞎符糊,改來(lái)改去的暇藏,折騰死你。

UML 也是一種國(guó)際規(guī)范建模語(yǔ)言濒蒋,也是一種語(yǔ)言盐碱,那么他肯定就有規(guī)范啦,找到這個(gè)規(guī)范的規(guī)則沪伙,我們學(xué)習(xí)起來(lái)就會(huì)很快的瓮顽。

UML圖 建模分成9種圖:

  • 類圖(Class Diagram):描述系統(tǒng)所包含的類、類內(nèi)部結(jié)構(gòu)及類之間的關(guān)系围橡。
  • 對(duì)象圖(Object Diagram):是類圖的一個(gè)具體實(shí)例暖混。
  • 組件圖(Compoment Diagram):描述代碼部件的物理結(jié)構(gòu)以及各部件之間的依賴關(guān)系。
  • 部署圖(Deployment Diagram):定義系統(tǒng)中軟翁授、硬件的物理體系結(jié)構(gòu)拣播。
  • 用例圖(Usecase Diagram):從用戶的角度出發(fā)描述系統(tǒng)的功能、需求收擦,展示系統(tǒng)外部的各類角色與系統(tǒng)內(nèi)部的* 各種用例之間的關(guān)系贮配。
  • 時(shí)序圖(Sequence Diagram):表示對(duì)象之間動(dòng)態(tài)合作的關(guān)系。
  • 協(xié)作圖(Collaboration Diagram):描述對(duì)象之間的協(xié)作關(guān)系塞赂。
  • 狀態(tài)圖(Statechart Diagram):描述一類對(duì)象的所有可能的狀態(tài)及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件泪勒。
  • 活動(dòng)圖(Activity Diagram):描述系統(tǒng)中各種活動(dòng)的執(zhí)行順序。

上面的9中圖可以歸納為下表:

類型 包含
靜態(tài)圖 類圖宴猾、對(duì)象圖
行為圖 狀態(tài)圖圆存、活動(dòng)圖
用例圖 用例圖
交互圖 順序圖、協(xié)作圖
實(shí)現(xiàn)圖 組件圖仇哆、部署圖

我們最常用的呢沦辙,就是類圖了,其他的就差了讹剔,這里我們就來(lái)好好學(xué)學(xué)類圖的繪制油讯,想看9種 UML 圖的介紹详民,看這里: UML實(shí)踐詳細(xì)經(jīng)典教程----用例圖、順序圖撞羽、狀態(tài)圖阐斜、類圖衫冻、包圖诀紊、協(xié)作圖


UML 類圖中的類

類在 UML 類圖中其實(shí)是分了3種角色的:

  • 實(shí)體類
    實(shí)體類對(duì)應(yīng)系統(tǒng)需求中的每個(gè)實(shí)體,它們通常需要保存在永久存儲(chǔ)體中隅俘,一般使用數(shù)據(jù)庫(kù)表或文件來(lái)記錄邻奠,實(shí)體類既包括存儲(chǔ)和傳遞數(shù)據(jù)的類,還包括操作數(shù)據(jù)的類为居。實(shí)體類來(lái)源于需求說(shuō)明中的名詞碌宴,如學(xué)生、商品等蒙畴。
  • 控制類
    控制類用于體現(xiàn)應(yīng)用程序的執(zhí)行邏輯贰镣,提供相應(yīng)的業(yè)務(wù)操作,將控制類抽象出來(lái)可以降低界面和數(shù)據(jù)庫(kù)之間的耦合度膳凝”。控制類一般是由動(dòng)賓結(jié)構(gòu)的短語(yǔ)(動(dòng)詞+名詞)轉(zhuǎn)化來(lái)的名詞,如增加商品對(duì)應(yīng)有一個(gè)商品增加類蹬音,注冊(cè)對(duì)應(yīng)有一個(gè)用戶注冊(cè)類等
  • 邊界類
    邊界類用于對(duì)外部用戶與系統(tǒng)之間的交互對(duì)象進(jìn)行抽象上煤,主要包括界面類,如對(duì)話框著淆、窗口劫狠、菜單等。
    在面向?qū)ο蠓治龊驮O(shè)計(jì)的初級(jí)階段永部,通常首先識(shí)別出實(shí)體類独泞,繪制初始類圖,此時(shí)的類圖也可稱為領(lǐng)域模型苔埋,包括實(shí)體類及其它們之間的相互關(guān)系阐肤。

我們看 UML 類圖有個(gè)七技巧,可以從作為 UI 界面的邊界類作為起點(diǎn)讲坎,因?yàn)檎麄€(gè)系統(tǒng)的表現(xiàn)就是從 UI 顯示開(kāi)始的

知道了 UML 中類的角色孕惜,那么接下來(lái),我們來(lái)看看 UML 中一個(gè) class 的繪制結(jié)構(gòu)


2011090716395022.jpg

方法要是有參數(shù)的話晨炕,也是要在 ( ) 里寫(xiě)上的衫画,:后面是返回值類型,一個(gè)簡(jiǎn)單的圖瓮栗,就能夠很直觀的描述一個(gè)類削罩,比看代碼都了解的快瞄勾。

當(dāng)然接口也是這個(gè)思路寫(xiě)的,看圖:


7984955-f96e38080e7972d2.jpg

UML 類的相互關(guān)系

UML 圖可以很直觀弥激,簡(jiǎn)單的表述清楚一個(gè)復(fù)雜的系統(tǒng)類結(jié)構(gòu)进陡,用的是什么手段呢,就是豐富準(zhǔn)確的類之間關(guān)系的設(shè)計(jì):

  • 繼承關(guān)系(泛化關(guān)系):為啥這樣叫我也不知道啊微服,看著真蛋疼V壕巍!以蕴!
  • 實(shí)現(xiàn)關(guān)節(jié)(接口)
  • 關(guān)聯(lián)關(guān)系
  • 依賴關(guān)系
  • 組合關(guān)系
  • 聚合關(guān)系

直觀的所有關(guān)系圖:


2012091218440850.jpg

1870963-66cc761f11b9f2d0.png

挑了2張圖糙麦,應(yīng)該可以滿足各位不同的口味啦。

繼承關(guān)系(泛化關(guān)系)

Snip20171124_20.png
  • 符號(hào):實(shí)線 + 空箭頭
  • 方向:從子類 —> 父類

實(shí)現(xiàn)關(guān)節(jié)(接口)

Snip20171124_21.png
  • 符號(hào):虛線 + 空箭頭
  • 方向:從實(shí)現(xiàn)類 —> 接口

下面的就要好好解釋一下了丛肮,不是很好理解赡磅,第一次接觸的要注意了。

單向關(guān)聯(lián)

Snip20171124_22.png
  • 符號(hào):實(shí)線+ 箭頭(注意不是空箭頭啦)
  • 方向:從持有者 —> 被持有者(類似觀察者和被觀察者的關(guān)系)
  • 理解:可以理解為一個(gè)類作為另一個(gè)類的變量被操作宝与,這里是 China 這個(gè)人持有了 pay 這個(gè)對(duì)象焚廊,用來(lái)支付。嚴(yán)格來(lái)說(shuō)习劫,關(guān)聯(lián)關(guān)系表示 A 的操作需要 B 的參與咆瘟,并不是嚴(yán)格的 B 一定要作為 A 的全局變量存在,我看有這么寫(xiě)的榜聂,不知道準(zhǔn)確不準(zhǔn)確搞疗。

雙向關(guān)聯(lián)

Snip20171124_26.png
  • 符號(hào):實(shí)線,沒(méi)箭頭了
  • 理解:大體同單向關(guān)聯(lián)须肆,注意兩邊都有箭頭匿乃,區(qū)別是雙方各自作為對(duì)方的變量被操作。

聚合關(guān)系

Snip20171124_27.png
  • 符號(hào):實(shí)線+ 實(shí)心菱形箭頭
  • 方向:從組件 —> 容器
  • 理解:和單向關(guān)聯(lián)一樣豌汇,也是表示一個(gè)類在另一個(gè)類中作為全部變量存在被調(diào)用幢炸,聚合關(guān)系呢更準(zhǔn)確的表示組件和容器的關(guān)系,注意這里是實(shí)心菱形箭頭拒贱,表示容器類銷毀了宛徊,組件累也會(huì)銷毀。

組合關(guān)系

Snip20171124_28.png
  • 符號(hào):實(shí)線+ 空心菱形箭頭(注意不是實(shí)心的了)
  • 方向:從組件 —> 容器
  • 理解:和聚合關(guān)系一樣逻澳,區(qū)別是使用空心的菱形箭頭闸天,表示容器類銷毀了,但是組件類還會(huì)存在斜做,不會(huì)跟著被銷毀

依賴關(guān)系

Snip20171124_30.png
  • 符號(hào):虛線
  • 方向:從調(diào)用方法的類 —> 參數(shù)類
  • 理解:表示一個(gè)類的某個(gè)方法會(huì)使用另一個(gè)類的對(duì)象作為參數(shù)苞氮,這個(gè)對(duì)象是作為方法的傳入?yún)?shù)存在,而不是全局變量

參考資料:

著作權(quán)歸作者所有戚揭。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處撵枢。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末民晒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诲侮,更是在濱河造成了極大的恐慌镀虐,老刑警劉巖箱蟆,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沟绪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡空猜,警方通過(guò)查閱死者的電腦和手機(jī)绽慈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辈毯,“玉大人坝疼,你說(shuō)我怎么就攤上這事∽晃郑” “怎么了钝凶?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)唁影。 經(jīng)常有香客問(wèn)我耕陷,道長(zhǎng),這世上最難降的妖魔是什么据沈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任哟沫,我火速辦了婚禮,結(jié)果婚禮上锌介,老公的妹妹穿的比我還像新娘嗜诀。我一直安慰自己,他們只是感情好孔祸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布隆敢。 她就那樣靜靜地躺著,像睡著了一般崔慧。 火紅的嫁衣襯著肌膚如雪拂蝎。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天尊浪,我揣著相機(jī)與錄音匣屡,去河邊找鬼封救。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捣作,可吹牛的內(nèi)容都是我干的誉结。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼券躁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惩坑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起也拜,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤以舒,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后慢哈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔓钟,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年卵贱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滥沫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡键俱,死狀恐怖兰绣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情编振,我是刑警寧澤缀辩,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站踪央,受9級(jí)特大地震影響臀玄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杯瞻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一镐牺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧魁莉,春花似錦睬涧、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至检疫,卻和暖如春讶请,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工夺溢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留论巍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓风响,卻偏偏與公主長(zhǎng)得像嘉汰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子状勤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345