解析UML類圖符號意義
軟體開發過程中經常會遇到UML建模,那麼你對UML符號是否熟悉,這裡向大家簡單介紹一下UML類圖符號,每種符號都有不同的意義,希望通過本節的學習你對UML類圖符號會有一定的瞭解,下面就讓我們一起來看一下UML類圖符號的詳細介紹吧。
UML類圖符號
在UML類圖中,常見的有以下幾種關係:泛化(Generalization),實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)
1、泛化(繼承)
【箭頭指向】:帶三角箭頭的實線,表示繼承一個基類,B類繼承A類。
【泛化關係】:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。
【泛化例子】:老虎是動物的一種,既有老虎的特性也有動物的共性。
2、實現
【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面,表示C類實現介面的定義。
【實現關係】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現。
3、關聯
【箭頭指向】:帶普通箭頭的實線,指向被擁有者。
【關聯關係】:是一種擁有的關係,它使一個類知道另一個類的特徵和行為,關聯分為單項關聯和雙向關聯兩種;雙向關聯可以用倆頭帶箭頭的實現表示,也可以不要箭頭。
【3.1】、單向關聯:僅能從一個類訪問到另一個類(前者的屬性中有後者),B類單項關聯A類(B中有屬性a為類A的物件);如:學生與課程的單向關聯。
【3.2】、雙向關聯:兩個類之間能相互訪問(兩個類的屬性中都有對方),B類關聯A類(B中有屬性a為類A的物件),A類關聯B類(A中有屬性bs為Set,Set包含B的物件),A和B是1對n(n>0)的關聯;如老師與學生的雙向關聯。
【3.3】、自身關聯:... ...
【程式碼體現】:成員變數
4、聚合
【箭頭方向】:帶空心菱形的實線,菱形指向整體;Wheel類扮演wheels角色,聚合4個到Car物件裡面去。
【聚合關係】:是整體與部分的關係,且部分可以離開整體而單獨存在。如Car和Wheel是整體與部分的關係,Wheel離開Car仍然可以存在,並不隨Car的建立而建立,銷燬而銷燬。
【程式碼體現】:成員變數
【聚合PK關聯】:聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。
5、組合
【箭頭方向】:帶實心菱形的實線,菱形指向整體;Company物件完全由Department物件組成。
【組合關係】:是整體與部分的關係,但部分不能離開整體而單獨存在。如Company和Department是整體與部分的關係,沒有Company就沒有Department,Department隨Company的建立而建立,銷燬而銷燬。
【程式碼體現】:成員變數
【組合PK關聯】:組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的物件負責代表部分的物件的生命週期。
6、依賴
【箭頭指向】:帶箭頭的虛線,指向被使用者,
【依賴關係】:是一種使用關係,表示類之間的呼叫關係,即一個類的實現需要另一個類的協助,所以儘量不使用互相依賴。
【程式碼體現】:如果類A訪問類B的屬性或者方法,或者類A負責例項化類B,那麼可以說類A依賴類B(區域性變數、方法的引數或者對靜態方法的呼叫)。
【依賴PK關聯】:和關聯關係不同,無須再類A中定義類B型別的屬性。
各種關係的強弱順序
泛化 == 實現 > 組合 > 聚合 > 關聯 > 依賴
下面這張UML圖,比較形象地展示了各種類圖關係 :