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