學習UML類圖

  在類圖中一共包含如下幾種模型元素,分別是:類(class)、接口(interface)以及類之間的關係。編程

一、類(class)spa

  在面向對象編程中,類是對現象世界中一組具備相同特徵的物體的抽象。3d

  

二、接口(interface)對象

  接口是一種特殊的類,具備類的結構但不可被實例化,只能夠被實現(繼承)。在UML中,接口使用一個帶有名稱的小圓圈來進行表示。blog

三、類圖中的關係繼承

  在UML類圖中,常見的有如下幾種關係:泛化(Generalization),實現(Realization),關聯(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)接口

  (1)泛化(Generalization)生命週期

  【泛化關係】:是一種繼承關係,表示通常與特殊的關係,它指定了子類如何特化父類的全部特徵和行爲。ci

  例如:老虎是動物的一種,既有老虎的特性也有動物的共性。it

  【箭頭指向】:帶三角箭頭的實線,箭頭指向父類

  (2)實現(Realization)

  【實現關係】:是一種類與接口的關係,表示類是接口全部行爲的實現。

  【箭頭指向】:帶有三角箭頭的虛線,箭頭指向接口

  (3)關聯(Association)

  【關聯關係】:是一種擁有的關係,它使一個類知道另外一個類的屬性和方法;如:老師與學生,關聯能夠是雙向的,也能夠是單向的。

  雙向的關聯能夠有兩個箭頭或沒有箭頭,單向的關聯有一個箭頭

  【代碼體現】:成員變量

  【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者。

  上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。

  但學生與某課程間的關係是單向關聯,一名學生可能要上多門課程,課程是個抽象的東西,它不擁有學生。

  下圖爲自身關聯:

  

  (4)聚合(Aggregation)

  【聚合關係】:是總體與部分的關係,且部分能夠離開總體而單獨存在。

  如車和輪胎是總體和部分的關係,輪胎離開車仍然能夠存在。

  聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上沒法區分,必須考察具體的邏輯關係。

  【代碼體現】:成員變量

  【箭頭及指向】:帶空心菱形的實心線,菱形指向總體

  (5)組合(Composition)  

  【組合關係】:是總體和部分的關係,但部分不能離開總體而單獨存在。

  如公司和部門是總體與部分的關係,沒有公司就不存在部門。

  組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中表明總體的對象負責表明部分的對象的生命週期。

  【代碼體現】:成員變量

  【箭頭及指向】:帶實心菱形的實線,菱形指向總體。

  (6)依賴(Dependency)

  【依賴關係】:是一種使用的關係,即一個類的實現須要另外一個類的協助,要儘可能不使用雙向的互相依賴。

  【代碼體現】:局部變量、方法的參數或者對靜態方法的調用

  【箭頭及指向】:帶箭頭的虛線,指向被使用者

 

   各類關係的強弱順序:

  泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴

  下面這張UML圖,比較形象地展現了各類類圖關係:

相關文章
相關標籤/搜索