UML中的類(lèi)圖及類(lèi)圖之間的關(guān)系

1渺尘、統(tǒng)一建模語(yǔ)言簡(jiǎn)介

統(tǒng)一建模語(yǔ)言(Unified Modeling Language, UML)是用來(lái)設(shè)計(jì)軟件藍(lán)圖的可視化建模語(yǔ)言,1997年被國(guó)際對(duì)象管理組織(OMG)采納為面向?qū)ο蟮慕UZ(yǔ)言的國(guó)際標(biāo)準(zhǔn)。它的特定是簡(jiǎn)單盔沫、統(tǒng)一、圖形化、能表達(dá)軟件設(shè)計(jì)中的靜態(tài)與動(dòng)態(tài)信息搏屑。

統(tǒng)一建模語(yǔ)言能為軟件開(kāi)發(fā)的所有階段提供模型化和可視化支持伟骨。而且融入了軟件工程領(lǐng)域的新思想饮潦、新方法和新技術(shù),使軟件設(shè)計(jì)人員溝通更簡(jiǎn)明逛腿,進(jìn)一步縮短了設(shè)計(jì)時(shí)間稀并,減少開(kāi)發(fā)成本。它的應(yīng)用領(lǐng)域很寬单默,不僅適合于一般系統(tǒng)的開(kāi)發(fā)碘举,而且適合于并行與分布式系統(tǒng)的建模。

UML從目標(biāo)系統(tǒng)的不同角度出發(fā)搁廓,定義了用例圖引颈、類(lèi)圖耕皮、對(duì)象圖、狀態(tài)圖蝙场、活動(dòng)圖凌停、時(shí)序圖、協(xié)作圖售滤、構(gòu)件圖罚拟、部署圖等9種圖。

2趴泌、類(lèi)舟舒、結(jié)構(gòu)和類(lèi)圖

2.1拉庶、類(lèi)

類(lèi)(Class)是指具有相同屬性嗜憔、方法和關(guān)系的對(duì)象的抽象,它封裝了數(shù)據(jù)和行為氏仗,是面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)的基礎(chǔ)吉捶,具有封裝性、繼承性和多態(tài)性等三大特性皆尔。在UML中呐舔,類(lèi)使用包含類(lèi)名、屬性和操作且?guī)в蟹指艟€(xiàn)的矩形來(lái)表示慷蠕。

(一)類(lèi)名(Name)是一個(gè)字符串珊拼,例如:Student。

(二)屬性(Attribute)是指類(lèi)的特性流炕,即類(lèi)的成員變量澎现。UML按以下格式表示:

[可見(jiàn)性]屬性名:類(lèi)型[=默認(rèn)值]

例如:-name:String

注:“可見(jiàn)性”表示該屬性對(duì)類(lèi)外的元素是否可見(jiàn),包括公有(Public)每辟、私有(Private)剑辫、受保護(hù)(Protected)和朋友(Friendly)四種,在類(lèi)圖中分別用符號(hào)+渠欺、-妹蔽、#、~表示挠将。

(三)操作(Operations)是類(lèi)的任意一個(gè)實(shí)例對(duì)象都可以使用的行為胳岂,是類(lèi)的成員方法。UML按以下格式表示:

[可見(jiàn)性]名稱(chēng)(參數(shù)列表)[:返回類(lèi)型]

例如:+display():void

圖1所示是學(xué)生類(lèi)的UML表示舔稀。

圖1 Student類(lèi)

2.2乳丰、接口

接口(Interface)是一種特殊的類(lèi),它具有類(lèi)的結(jié)構(gòu)但不可被實(shí)例化镶蹋,只可以被子類(lèi)實(shí)現(xiàn)成艘。它包含抽象操作赏半,但不包含屬性。它描述了類(lèi)或組件對(duì)外可見(jiàn)的動(dòng)作淆两。在UML中断箫,接口使用一個(gè)帶有名稱(chēng)的小圓圈來(lái)進(jìn)行表示。

圖2所示是圖形類(lèi)接口的UML表示秋冰。

圖2 Graph接口

2.3仲义、類(lèi)圖

類(lèi)圖(ClassDiagram)是用來(lái)顯示系統(tǒng)中的類(lèi)、接口剑勾、協(xié)作以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型埃撵。它主要用于描述軟件系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì),幫助人們簡(jiǎn)化對(duì)軟件系統(tǒng)的理解虽另,它是系統(tǒng)分析和設(shè)計(jì)階段的重要產(chǎn)物暂刘,也是系統(tǒng)編碼與測(cè)試的重要模型依據(jù)。

類(lèi)圖中的類(lèi)可以通過(guò)某種編程語(yǔ)言直接實(shí)現(xiàn)捂刺。類(lèi)圖在軟件系統(tǒng)開(kāi)發(fā)的整個(gè)生命周期都是有效的谣拣,它是面向?qū)ο笙到y(tǒng)的建模中最常見(jiàn)的圖。圖3所示是“計(jì)算長(zhǎng)方形和圓形的周長(zhǎng)和面積”的類(lèi)圖族展,圖形接口有計(jì)算面積和周長(zhǎng)的抽象方法森缠,長(zhǎng)方形和圓形實(shí)現(xiàn)這兩個(gè)方法供訪問(wèn)類(lèi)調(diào)用。

圖3 “計(jì)算機(jī)長(zhǎng)方形和圓形的周長(zhǎng)和面積”的類(lèi)圖

3仪缸、類(lèi)之間的關(guān)系

在軟件系統(tǒng)中贵涵,類(lèi)不是孤立存在的,類(lèi)與類(lèi)之間存在各種關(guān)系恰画。根據(jù)類(lèi)與類(lèi)之間的耦合度從弱到強(qiáng)排列宾茂,UML中的類(lèi)圖有以下幾種關(guān)系:依賴(lài)關(guān)系、關(guān)聯(lián)關(guān)系锣尉、聚合關(guān)系刻炒、組合關(guān)系、泛化關(guān)系和實(shí)現(xiàn)關(guān)系自沧。其中泛化和實(shí)現(xiàn)的耦合度相等坟奥,它們是最強(qiáng)的。

3.1拇厢、依賴(lài)關(guān)系

依賴(lài)(Dependency)關(guān)系是一種使用關(guān)系爱谁,它是對(duì)象之間耦合度最弱的一種關(guān)聯(lián)方式,是臨時(shí)性的關(guān)聯(lián)孝偎。在代碼中访敌,某個(gè)類(lèi)的方法通過(guò)局部變量墩划、方法的參數(shù)或者對(duì)靜態(tài)方法的調(diào)用來(lái)訪問(wèn)另一個(gè)類(lèi)(被依賴(lài)類(lèi))中的某些方法來(lái)完成一些職責(zé)眉尸。

在UML類(lèi)圖中劲绪,依賴(lài)關(guān)系使用帶箭頭的虛線(xiàn)來(lái)表示鞍陨,箭頭從使用類(lèi)指向被依賴(lài)的類(lèi)。圖4所示是人與手機(jī)的關(guān)系圖阻塑,人通過(guò)手機(jī)的語(yǔ)音傳送方法打電話(huà)蓝撇。

圖4 依賴(lài)關(guān)系的實(shí)例

3.2、關(guān)聯(lián)關(guān)系

關(guān)聯(lián)(Association)關(guān)系是對(duì)象之間的一種引用關(guān)系陈莽,用于表示一類(lèi)對(duì)象與另一類(lèi)對(duì)象之間的聯(lián)系渤昌,如老師和學(xué)生,師傅和徒弟走搁,丈夫和妻子等独柑。關(guān)聯(lián)關(guān)系是類(lèi)與類(lèi)之間最常用的一種關(guān)系,分為一般關(guān)聯(lián)關(guān)系私植、聚合關(guān)系和組合關(guān)系忌栅。我們先介紹一般關(guān)系。

關(guān)聯(lián)可以是雙向的兵琳,也可以是單向的狂秘。在UML類(lèi)圖中骇径,雙向的關(guān)聯(lián)可以用帶兩個(gè)箭頭或者沒(méi)有箭頭的實(shí)線(xiàn)來(lái)表示躯肌,單向的關(guān)聯(lián)用帶一個(gè)箭頭的實(shí)線(xiàn)來(lái)表示,箭頭從使用類(lèi)指向被關(guān)聯(lián)的類(lèi)破衔。也可以在關(guān)聯(lián)線(xiàn)的兩端標(biāo)注角色名清女,代表兩種不同的角色。

在代碼中通常將一個(gè)類(lèi)的對(duì)象作為另一個(gè)類(lèi)的成員變量來(lái)實(shí)現(xiàn)關(guān)聯(lián)關(guān)系晰筛。圖5所示是老師和學(xué)生的關(guān)系圖嫡丙,每個(gè)老師可以教多個(gè)學(xué)生,每個(gè)學(xué)生也可向多個(gè)老師學(xué)读第,他們是雙向關(guān)聯(lián)曙博。

圖5 關(guān)聯(lián)關(guān)系的實(shí)例

3.3、聚合關(guān)系

聚合(Aggregation)關(guān)系是關(guān)聯(lián)關(guān)系的一種怜瞒,是強(qiáng)關(guān)聯(lián)關(guān)系父泳,是整體和部分之間的關(guān)系,是has-a的關(guān)系吴汪。

聚合關(guān)系也是通過(guò)成員對(duì)象來(lái)實(shí)現(xiàn)的惠窄,其中成員對(duì)象是整體對(duì)象的一部分,但是成員對(duì)象可以脫離整體對(duì)象而獨(dú)立存在漾橙。例如杆融,學(xué)校與老師的關(guān)系,學(xué)校包含老師霜运,但如果學(xué)校停辦了脾歇,老師依然存在蒋腮。

在UML類(lèi)圖中,聚合關(guān)系可以用帶空心菱形的實(shí)線(xiàn)來(lái)表示藕各,菱形指向整體徽惋。圖6所示是大學(xué)和教師的關(guān)系圖。

圖6 聚合關(guān)系的實(shí)例

3.4座韵、組合關(guān)系

組合(Composition)關(guān)系也是關(guān)聯(lián)關(guān)系的一種险绘,也表示類(lèi)之間的整體與部分的關(guān)系,但它是一種更強(qiáng)烈的聚合關(guān)系誉碴,是contains-a關(guān)系宦棺。

在組合關(guān)系中,整體對(duì)象可以控制部分對(duì)象的生命周期黔帕,一旦整體對(duì)象不存在代咸,部分對(duì)象也將不存在,部分對(duì)象不能脫離整體對(duì)象而存在成黄。例如呐芥,頭和嘴的關(guān)系,滅有了頭奋岁,嘴也就不存在了思瘟。

在UML類(lèi)圖中,組合關(guān)系用帶實(shí)心菱形的實(shí)現(xiàn)來(lái)表示闻伶,菱形指向整體滨攻。圖7所示是頭和嘴的關(guān)系圖。

圖7 組合關(guān)系的實(shí)例

3.5蓝翰、泛化關(guān)系

泛化(Generalization)關(guān)系是對(duì)象之間耦合度最大的一種關(guān)系光绕,表示一般與特殊的關(guān)系,是父類(lèi)與子類(lèi)之間的關(guān)系畜份,是一種繼承關(guān)系诞帐,是is-a的關(guān)系。

在UML類(lèi)圖中爆雹,泛化關(guān)系用帶空心三角箭頭的實(shí)線(xiàn)來(lái)表示停蕉,箭頭從子類(lèi)指向父類(lèi)。在代碼實(shí)現(xiàn)時(shí)顶别,使用面向?qū)ο蟮睦^承機(jī)制來(lái)實(shí)現(xiàn)泛化關(guān)系谷徙。例如,Student類(lèi)和Teacher類(lèi)都是Person類(lèi)的子類(lèi)驯绎,其類(lèi)圖如圖8所示完慧。

圖8 泛化關(guān)系的實(shí)例

3.6、實(shí)現(xiàn)關(guān)系

實(shí)現(xiàn)(Realization)關(guān)系是接口與實(shí)現(xiàn)類(lèi)之間的關(guān)系剩失。在這種關(guān)系中屈尼,類(lèi)實(shí)現(xiàn)了接口册着,類(lèi)中的操作實(shí)現(xiàn)了接口中所聲明的所有的抽象操作。

在UML類(lèi)圖中脾歧,實(shí)現(xiàn)關(guān)系使用帶空心三角箭頭的虛線(xiàn)來(lái)表示甲捏,箭頭從實(shí)現(xiàn)類(lèi)指向接口。例如鞭执,汽車(chē)和船實(shí)現(xiàn)了交通工具司顿,其類(lèi)圖如圖9所示。

圖9 實(shí)現(xiàn)關(guān)系的實(shí)例
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末兄纺,一起剝皮案震驚了整個(gè)濱河市大溜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌估脆,老刑警劉巖钦奋,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疙赠,居然都是意外死亡付材,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)圃阳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)厌衔,“玉大人,你說(shuō)我怎么就攤上這事限佩】” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵祟同,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我理疙,道長(zhǎng)晕城,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任砖顷,我火速辦了婚禮,結(jié)果婚禮上授嘀,老公的妹妹穿的比我還像新娘物咳。我一直安慰自己芯肤,他們只是感情好崖咨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著际邻,像睡著了一般世曾。 火紅的嫁衣襯著肌膚如雪轮听。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音鲫凶,去河邊找鬼螟炫。 笑死昼钻,一個(gè)胖子當(dāng)著我的面吹牛然评,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贯莺,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼耙考!你這毒婦竟也來(lái)了倦始?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肮雨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體波丰,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扩灯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年颖对,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顾患。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片设预。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳖枕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桨螺,到底是詐尸還是另有隱情宾符,我是刑警寧澤魏烫,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏管闷。R本人自食惡果不足惜冤留,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一纤怒、第九天 我趴在偏房一處隱蔽的房頂上張望糯而。 院中可真熱鬧,春花似錦、人聲如沸瓜贾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)祭芦。三九已至筷笨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間实束,已是汗流浹背奥秆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咸灿,地道東北人构订。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像避矢,于是被迫代替她去往敵國(guó)和親悼瘾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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

  • 在UML 2.0的13種圖形中审胸,類(lèi)圖是使用頻率最高的UML圖之一亥宿。Martin Fowler在其著作《UML Di...
    雷雷_zll閱讀 13,241評(píng)論 0 14
  • 在UML類(lèi)圖中,常見(jiàn)的有以下幾種關(guān)系:泛化(Generalization),實(shí)現(xiàn)(Realization)砂沛,關(guān)聯(lián)(...
    mocobk閱讀 1,106評(píng)論 0 1
  • 忘記了uml類(lèi)圖連線(xiàn)之間的關(guān)系烫扼,記錄一下。 1. 關(guān)聯(lián)關(guān)系 關(guān)聯(lián)(Association)關(guān)系是類(lèi)與類(lèi)之間最常用的...
    cutieagain閱讀 1,834評(píng)論 0 2
  • UML概述 UML簡(jiǎn)介 UML (Unified Modeling Language)為面向?qū)ο筌浖O(shè)計(jì)提供統(tǒng)一的...
    aron1992閱讀 515評(píng)論 0 0
  • 類(lèi)的理解 類(lèi)(Class)封裝了數(shù)據(jù)和行為碍庵,是面向?qū)ο蟮闹匾M成部分映企,它是具有相同屬性、操作静浴、關(guān)系的對(duì)象集合的總稱(chēng)...
    無(wú)忌不悔閱讀 1,382評(píng)論 0 1