UML——四種關係,uml四種

來源:互聯網
上載者:User

UML——四種關係,uml四種

         在畫類圖之前,首先要理清UML中的四種關係,常見的有以下四種關係: 泛化(Generalization),  實現(Realization),關聯(Association),依賴(Dependency),而在關聯中又包括:彙總(Aggregation),組合(Composition),在這幾種關係中他們又有剪不斷的聯絡。

一、概念

【泛化】:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。箭頭指向:帶三角箭頭的實線,箭頭指向父類。

【實現】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現。箭頭指向:帶空心三角箭頭的虛線,箭頭指向介面。

【關聯】:是一種擁有的關係,它使一個類知道另一個類的屬性和方法。箭頭指向:實線箭頭。

【彙總】:表示整體對象擁有部分對象。箭頭指向:空心菱形+實線箭頭。

【組合】:彙總的一種形式,它具有更強的擁有關係,強調整體與部分的生命週期是一致的。箭頭指向:實心菱形+實現箭頭。

【依賴】:是兩個事物間的語義關係,其中一個事物(獨立事物)發生變化會影響另一個事物(依賴事物)。箭頭指向:虛線箭頭。


二、執行個體介紹

【泛化】鳥屬於動物,它具有動物的特徵同時還具有自己特有的功能。

【實現】:大雁實現飛翔的介面。

【關聯】:企鵝和氣候,企鵝生活在南極,它需要這種氣候才能生活,企鵝需要‘知道’氣候的變化,‘瞭解’氣候規律。

【彙總】:電腦和外接鍵盤,兩者可以獨立存在。

【組合】:鳥和翅膀的關係,不能獨立存在。
【依賴】:動物要生存需要依賴於氧氣,水和食物。

三、PK賽

1、【彙總】PK【組合】

相同點:兩者都表示‘擁有’的關係,區別:生命週期的長短。

【彙總】:表示一種弱的‘擁有’關係,體現的是A對象可以包含B對象,他們的生命週期或許是不同的,A對象不隨著B對象的消失而消失,兩者可以獨立存在。

【組合】:表示一種強的‘擁有’,他們是部分和整體的關係,他們的生命週期是相同的,A對象會隨著B對象的消失而消失,二者是不能獨立存在的。

關係強弱比較:組合>彙總

2、【泛化】PK【實現】

相同點:相當於繼承。 子類繼承父類,父類泛化子類。

關係強弱比較:泛化=實現

3、【關聯】PK【依賴】

相同點:都表示依賴關係。區別:類之間關係的強弱程度和類之間關係的時間長短。

【關聯】表示類之間的很強的關係,它表示類之間的“持久”關係,這種關係一般表示一種重要的業務之間的關係,需要儲存的,或者說需要“持久化”的,或者說需要儲存到資料庫中的。

【依賴】表示類之間的較弱的關係,它表示類之間的是一種“臨時、短暫”關係,這種關係是不需要儲存的。

關係強弱比較:關聯>依賴

得到關係強弱的比較:泛化 = 實現 > 組合 > 彙總 > 關聯 > 依賴

四、小結

       初次學習UML,對四種關係瞭解的還不是很深,在c#,設計模式中都有提到UML的四種關係和九種圖,相信通過反覆的學習,一定可以加深對他們的理解。




專家答疑 UML包括什圖

本文和大家重點討論一下UML圖和關係的概念,UML包括九種圖:使用案例圖、類圖、對象圖、構件圖、部署圖、活動圖表、共同作業圖表、狀態圖、順序圖表。而UML關係共有四種,請看本文詳細介紹。UML圖包括九種:使用案例圖、類圖、對象圖、構件圖、部署圖、活動圖表、共同作業圖表、狀態圖、順序圖表。在這些圖中使用案例圖、類圖、順序圖表是最有用的。根據其用意,可以將UML圖劃分為結構型圖和行為型圖兩種。結構型圖:描述系統的靜態結構。在顯示系統中類及類之間的關係時最有用。結構型圖顯然,要描述一個設計模式的靜態結構,使用UML圖中的類圖和對象圖是很合適的。行為型圖顯然,要描述一個設計模式的行為特徵,使用UML圖中的狀態圖和時序圖是很合適的。應當指出的是源碼天空,一個使用UML的系統設計,往往是從使用案例圖開始的,而且是一個設計應當是使用案例驅動的。
 
UML類圖幾種關係的總結

在UML類圖中,常見的有以下幾種關係: 泛化(Generalization), 實現(Realization),關聯(Association),彙總(Aggregation),組合(Composition),依賴(Dependency) 1. 泛化(Generalization) 【泛化關係】:是一種繼承關係,表示一般與特殊的關係,它指定了子類如何特化父類的所有特徵和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。 【箭頭指向】:帶三角箭頭的實線,箭頭指向父類 2. 實現(Realization) 【實現關係】:是一種類與介面的關係,表示類是介面所有特徵和行為的實現. 【箭頭指向】:帶三角箭頭的虛線,箭頭指向介面 3. 關聯(Association) 【關聯關係】:是一種擁有的關係,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。 【代碼體現】:成員變數 【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者 中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關係為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。 為自身關聯: 4. 彙總(Aggregation) 【彙總關係】:是整體與部分的關係,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關係,輪胎離開車仍然可以存在。 彙總關係是關聯關係的一種,是強的關聯關係;關聯和彙總在文法上無法區分,必須考察具體的邏輯關係。 【代碼體現】:成員變數 【箭頭及指向】:帶空心菱形的實心線,菱形指向整體 5. 組合(Composition) 【組合關係】:是整體與部分的關係,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關係,沒有公司就不存在部門。 組合關係是關聯關係的一種,是比彙總關係還要強的關係,它要求普通的彙總關係中代表整體的對象負責代表部分的對象的生命週期。【代碼體現】:成員變數【箭頭及指向】:帶實心菱形的實線,菱形指向整體 6. 依賴(Dependency) 【依賴關係】:是一種使用的關係,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴. 【代碼錶現】:局部變數、方法的參數或者對靜態方法的調用 【箭頭及指向】:帶箭頭的虛線,指向被使用者 各種關係的強弱順序: 泛化 = 實現 > 組合 > 彙總 > 關聯 > 依賴 下面這張UML圖,比較形象地展示了各種類圖關係:
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.