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