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