一、UML的常用關(guān)系
1、關(guān)聯(lián)關(guān)系(Association)
關(guān)聯(lián)關(guān)系是指不同類(lèi)之間的聯(lián)系,它表示一個(gè)類(lèi)對(duì)象與另一個(gè)類(lèi)對(duì)象之間的引用關(guān)系,通常用一條直線(xiàn)表示。關(guān)聯(lián)關(guān)系分為雙向關(guān)聯(lián)和單向關(guān)聯(lián),其中雙向關(guān)聯(lián)表示兩個(gè)類(lèi)互相引用,而單向關(guān)聯(lián)表示只有一個(gè)類(lèi)引用另一個(gè)類(lèi)。
關(guān)聯(lián)關(guān)系是對(duì)象之間的引用關(guān)系,它強(qiáng)調(diào)的是對(duì)象之間的互動(dòng)關(guān)系,不同于繼承關(guān)系的繼承性和約束性。雙向關(guān)聯(lián)和單向關(guān)聯(lián)的區(qū)別在于引用關(guān)系的方向性,單向關(guān)聯(lián)表示只有一個(gè)方向的引用,而雙向關(guān)聯(lián)則表示互相引用。
2、聚合關(guān)系(Aggregation)
聚合關(guān)系是指一個(gè)對(duì)象包含另一個(gè)對(duì)象,但是這兩個(gè)對(duì)象之間不具備相同的生命周期,通常用一條帶空心菱形的直線(xiàn)表示,菱形表示整體,直線(xiàn)表示部分。
聚合關(guān)系是弱的整體與部分關(guān)系,整體和部分可以有不同的生命周期。例如,汽車(chē)和車(chē)輪之間就是聚合關(guān)系,因?yàn)檐?chē)輪可以獨(dú)立存在,而汽車(chē)的生命周期比車(chē)輪要長(zhǎng)。
3、組合關(guān)系(Composition)
組合關(guān)系是指一個(gè)對(duì)象包含另一個(gè)對(duì)象,但是這兩個(gè)對(duì)象之間具有相同的生命周期,通常用一條帶實(shí)心菱形的直線(xiàn)表示,菱形表示整體,直線(xiàn)表示部分。
組合關(guān)系是強(qiáng)的整體與部分關(guān)系,整體和部分具有相同的生命周期,整體被銷(xiāo)毀時(shí),部分也會(huì)被銷(xiāo)毀。例如,電腦和硬盤(pán)之間就是組合關(guān)系,因?yàn)橛脖P(pán)的生命周期與電腦是相同的。
4、依賴(lài)關(guān)系(Dependency)
依賴(lài)關(guān)系是指一個(gè)類(lèi)的實(shí)現(xiàn)依賴(lài)于另一個(gè)類(lèi),如果一個(gè)類(lèi)的變化會(huì)影響到另一個(gè)類(lèi),則表示它們之間存在依賴(lài)關(guān)系,通常用一條帶箭頭的虛線(xiàn)表示,箭頭指向依賴(lài)的類(lèi)。
依賴(lài)關(guān)系是一個(gè)類(lèi)使用另一個(gè)類(lèi)的接口,而不是直接與另一個(gè)類(lèi)交互,依賴(lài)關(guān)系是一種使用關(guān)系而非繼承或組合關(guān)系。例如,電腦使用鍵盤(pán)和鼠標(biāo)時(shí)就存在依賴(lài)關(guān)系,因?yàn)殡娔X只是使用鍵盤(pán)和鼠標(biāo)提供的接口,而不會(huì)直接與鍵盤(pán)和鼠標(biāo)交互。
5、繼承關(guān)系(Inheritance)
繼承關(guān)系是指一個(gè)類(lèi)(子類(lèi))繼承另一個(gè)類(lèi)(父類(lèi))的特性,包括屬性和方法等,通常用一條帶空心箭頭的直線(xiàn)表示,箭頭指向父類(lèi)。
繼承關(guān)系是一種類(lèi)之間的層次關(guān)系,子類(lèi)可以繼承父類(lèi)的屬性和方法,同時(shí)還可以定義自己的屬性和方法。例如,狗和貓都是動(dòng)物,它們之間就存在繼承關(guān)系,因?yàn)楣泛拓埗伎梢岳^承動(dòng)物類(lèi)的屬性和方法。