類圖(ClassDiagram) 是描述類、接口、協(xié)作以及它們之間關(guān)系的圖,用來(lái)顯示系統(tǒng)中
各個(gè)類的靜態(tài)結(jié)構(gòu)。類圖是一種模型類型,確切地說(shuō),是一種靜態(tài)模型類型。
類圖是面向?qū)ο笙到y(tǒng)建模中最常用的圖,它是定義其他圖的基礎(chǔ),在類圖的基礎(chǔ)上,可
以使用狀態(tài)圖、協(xié)作圖、組件圖和配置圖等進(jìn)一步描述系統(tǒng)其他方面的特性。
類圖包含7 個(gè)元素:類(Class)、接口(1nterface )、協(xié)作(Collaboratio川、依賴關(guān)系
( Dependency )、泛化關(guān)系(Generalization)、關(guān)聯(lián)關(guān)系(Association)以及實(shí)現(xiàn)關(guān)系(Realization) 。
說(shuō)明:其實(shí)還有聚合、組合。
另外,所謂的協(xié)作,其實(shí)就是指各類、接口間存在的各種關(guān)系。因此,各類間一般不是孤立存在的。
注意:
A) 在UML中,公有類型用"+"表達(dá),私有類型用"-"表達(dá),而受保護(hù)類型則用"# "表達(dá)。UML的類中不存在
默認(rèn)的可見(jiàn)性,如果沒(méi)有顯示任何一種符號(hào),就表示沒(méi)有定義該屬性的可見(jiàn)性。
B) 。類中操作的可見(jiàn)性主要包括公有(PubliC)、私有(Private)、受保護(hù)(Protected)
和包內(nèi)公有(Package) 4種,分別用"+"、"-"、"#"和"~"來(lái)表示。
其中,只要調(diào)用對(duì)象能夠訪問(wèn)操作所在的包,就可以調(diào)用可見(jiàn)性為公有的操作;只有屬
于同一個(gè)類的對(duì)象才可以調(diào)用可見(jiàn)性為私有的操作,只有子類的對(duì)象才可以調(diào)用父類的可見(jiàn)
性為受保護(hù)的操作:只有在同一個(gè)包里的對(duì)象才可以調(diào)用可見(jiàn)性為包內(nèi)公有的操作。
----------------------
UML定義了4種基本依賴類型,分別是使用(Usage) 依賴、抽象CAbstraction) 依賴、
授權(quán)(Permission) 依賴和綁定CBinding) 依賴.其中,使用依賴是類中最常用的依賴。
在實(shí)際建鎮(zhèn)中.3 種情況下產(chǎn)生使用依賴:客戶類的操作需要提供者類的參數(shù):客戶類的
操作返回提供者類的值;客戶類的操作在實(shí)現(xiàn)中使用提供者類的對(duì)象。使用的構(gòu)造型
包括調(diào)用和實(shí)例。在實(shí)際建模中,調(diào)用依賴和參數(shù)依賴較少被使用。發(fā)送依賴規(guī)定
客戶把信號(hào)發(fā)送到非指定的目標(biāo),實(shí)例化依賴則規(guī)定客戶創(chuàng)建目標(biāo)元素的實(shí)例。
---------------------
關(guān)聯(lián)關(guān)系(Association )
關(guān)聯(lián)關(guān)系是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)事物的對(duì)象與另一個(gè)事物的對(duì)象之間的聯(lián)系。也
就是說(shuō),關(guān)聯(lián)描述了系統(tǒng)中對(duì)象或?qū)嵗g的離散連接。關(guān)聯(lián)的任何一個(gè)連接點(diǎn)都叫做關(guān)聯(lián)
端,與類有關(guān)的許多信息都附在它的端點(diǎn)上。在UML中,關(guān)聯(lián)關(guān)系用一條連接兩個(gè)類的實(shí)
線表示。
---------------------
聚合(Aggregation )。聚合關(guān)系是一種特殊類型的關(guān)聯(lián),它表示整體與部分關(guān)系的
關(guān)聯(lián)。簡(jiǎn)單的說(shuō),關(guān)聯(lián)關(guān)系中一組元素組成了一個(gè)更大、更復(fù)雜的單元,這種關(guān)聯(lián)關(guān)系就是
聚合。聚合關(guān)系描述了"has a" 的關(guān)系。在UML中,聚合關(guān)系用帶空心菱形頭的實(shí)線來(lái)表
示,其中頭部指向整體。
---------------------
組合關(guān)系(Composition)。組合關(guān)系是聚合關(guān)系中的一種特殊情況,是更強(qiáng)形式的
聚合,又被稱為強(qiáng)聚合e 在組合中,成員對(duì)象的生命周期取決于聚合的生命周期,聚合不僅
控制著成員對(duì)象的行為,而且控制著成員對(duì)象的創(chuàng)建和解構(gòu)。在U孔伍中,組合關(guān)系用帶實(shí)
心菱形頭的實(shí)線來(lái)表示,其中頭部指向整體。
---------------------
導(dǎo)航性(Navigation)。導(dǎo)航性描述的是一個(gè)對(duì)象通過(guò)鏈(關(guān)聯(lián)的實(shí)例〉進(jìn)行導(dǎo)航訪
問(wèn)另一個(gè)對(duì)象,即對(duì)一個(gè)關(guān)聯(lián)端點(diǎn)設(shè)置導(dǎo)航屬性意味著本端的對(duì)象可以被另 端的對(duì)象訪問(wèn)。
可以在關(guān)聯(lián)關(guān)系上加箭頭表示導(dǎo)航方向。只在一個(gè)方向上可以導(dǎo)航的關(guān)聯(lián)稱為單向關(guān)聯(lián)
(Unidirectional Association),用→條帶箭頭的實(shí)線來(lái)表示,如圖6-23所示:在兩個(gè)方向上都
可以導(dǎo)航的關(guān)聯(lián)稱為雙向關(guān)聯(lián)(Bidirectional Association),用一條沒(méi)有箭頭的實(shí)線來(lái)表示。
另外,使用導(dǎo)航性可以降低類間的精合度,這也是好的面向?qū)ο蠓治雠c設(shè)計(jì)的目標(biāo)之一。
----------------------
對(duì)象圖<ObjectDiagram) 描述的是參與交互的各個(gè)對(duì)象在交互過(guò)程中某一時(shí)刻的狀態(tài)·
對(duì)象圖可以被看作是類圖在某一時(shí)刻的實(shí)例。 在U阻中,對(duì)象圖使用的是與類圖相同的
符號(hào)和關(guān)系,因?yàn)閷?duì)象就是類的實(shí)例。