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