比優(yōu)化更好的詞是seo教程網(wǎng)站
簡(jiǎn)介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語(yǔ)音方案、音視頻、編解碼等技術(shù),與大家一起成長(zhǎng)!
優(yōu)質(zhì)專欄:Audio工程師進(jìn)階系列【原創(chuàng)干貨持續(xù)更新中……】🚀
人生格言: 人生從來(lái)沒有捷徑,只有行動(dòng)才是治療恐懼和懶惰的唯一良藥.
1.前言
本篇目的:理解Markdown類圖之繼承、實(shí)現(xiàn)、關(guān)聯(lián)、依賴、組合、聚合的區(qū)別?以及如何使用。
2.Markdown類圖繼承、實(shí)現(xiàn)、關(guān)聯(lián)、依賴、組合、聚合的定義
-
繼承(Inheritance):一種類與類之間的關(guān)系,表示一個(gè)類(稱為子類或派生類)繼承另一個(gè)類(稱為父類或基類)的屬性和方法。繼承可以實(shí)現(xiàn)代碼的重用和擴(kuò)展。
-
實(shí)現(xiàn)(Implementation):一種類與類之間的關(guān)系,表示一個(gè)類實(shí)現(xiàn)了另一個(gè)類定義的接口或協(xié)議。實(shí)現(xiàn)關(guān)系用于描述類之間的約定和契約,確保實(shí)現(xiàn)類具有指定的方法和行為。
-
關(guān)聯(lián)(Association):一種類與類之間的關(guān)系,表示兩個(gè)類之間的聯(lián)系和連接。關(guān)聯(lián)關(guān)系是對(duì)象之間最普遍和常見的關(guān)系,可以是單向的、雙向的、一對(duì)一的、一對(duì)多的、多對(duì)多的。
-
依賴(Dependency):一種類與類之間的關(guān)系,表示一個(gè)類在執(zhí)行過(guò)程中需要另一個(gè)類的協(xié)助或依賴。依賴關(guān)系通常以參數(shù)、返回值、局部變量等方式表現(xiàn)。
-
組合(Composition):一種類與類之間的關(guān)系,表示一個(gè)類由其他類組合而成,并且組合的類不能獨(dú)立存在。組合關(guān)系是一種強(qiáng)關(guān)聯(lián)關(guān)系,一旦組合的類不存在,則整個(gè)類也不存在。
-
聚合(Aggregation):一種類與類之間的關(guān)系,表示一個(gè)類包含其他類的實(shí)例,而這些實(shí)例可以獨(dú)立存在。聚合關(guān)系是一種弱關(guān)聯(lián)關(guān)系,即使聚合的類不存在,包含類仍然可以存在。
區(qū)分這些類關(guān)系的關(guān)鍵在于理解它們的語(yǔ)義和用途。繼承和實(shí)現(xiàn)關(guān)系是針對(duì)類之間的繼承和接口實(shí)現(xiàn)關(guān)系,關(guān)聯(lián)和依賴關(guān)系描述了類之間的聯(lián)系和依賴關(guān)系,組合和聚合關(guān)系描述了類之間的整體與部分的關(guān)系。在設(shè)計(jì)類之間的關(guān)系時(shí),需要根據(jù)實(shí)際需求和語(yǔ)義來(lái)選擇適合的關(guān)系類型。
3.類圖中的符號(hào)表示
4.Markdown類圖繼承、實(shí)現(xiàn)、關(guān)聯(lián)、依賴、組合、聚合應(yīng)用實(shí)例
1. 繼承(Inheritance):表示一個(gè)類可以繼承另一個(gè)類的屬性和方法。繼承關(guān)系用于實(shí)現(xiàn)類的層次結(jié)構(gòu)和代碼的重用。子類繼承父類的屬性和方法,并可以擴(kuò)展或重寫它們。示例代碼:
class Animal {// 父類Animal的屬性和方法
}class Dog extends Animal {// 子類Dog繼承了父類Animal的屬性和方法,并可以擴(kuò)展或重寫它們
}
2. 實(shí)現(xiàn)(Implementation):表示一個(gè)類實(shí)現(xiàn)了另一個(gè)類定義的接口或協(xié)議。實(shí)現(xiàn)關(guān)系用于描述類之間的約定和契約,確保實(shí)現(xiàn)類具有指定的方法和行為。示例代碼:
interface Drawable {void draw();
}class Circle implements Drawable {// 類Circle實(shí)現(xiàn)了接口Drawable的方法draw()
}
3. 關(guān)聯(lián)(Association):表示兩個(gè)類之間的連接和關(guān)系。關(guān)聯(lián)關(guān)系可以是單向的、雙向的,一對(duì)一的、一對(duì)多的或多對(duì)多的。關(guān)聯(lián)關(guān)系通常是通過(guò)類之間的字段或參數(shù)來(lái)實(shí)現(xiàn)。示例代碼:
class Car {// 類Car與類Engine之間存在關(guān)聯(lián)關(guān)系,Car擁有一個(gè)Engineprivate Engine engine;
}
4. 依賴(Dependency):表示一個(gè)類在執(zhí)行過(guò)程中需要另一個(gè)類的協(xié)助或依賴。依賴關(guān)系通常是通過(guò)類之間的方法參數(shù)或局部變量來(lái)實(shí)現(xiàn)。示例代碼:
class Car {// 類Car依賴于類Engine的方法start()public void start(Engine engine) {engine.start();}
}
5. 組合(Composition):表示一個(gè)類由其他類組合而成,并且組合的類不能獨(dú)立存在。組合關(guān)系是一種強(qiáng)關(guān)聯(lián)關(guān)系,一旦組合的類不存在,則整個(gè)類也不存在。示例代碼:
class Car {// 類Car由類Engine組合而成,Car擁有一個(gè)Engineprivate Engine engine;
}
6. 聚合(Aggregation):表示一個(gè)類包含其他類的實(shí)例,而這些實(shí)例可以獨(dú)立存在。聚合關(guān)系是一種弱關(guān)聯(lián)關(guān)系,即使聚合的類不存在,包含類仍然可以存在。示例代碼:
class Department {// 類Department包含多個(gè)類Employee的實(shí)例,Employee可以獨(dú)立存在private List<Employee> employees;
}
5.說(shuō)明
舉例說(shuō)明:
1.繼承:
定義:是一種繼承關(guān)系,表示子類繼承父類的所有特征和行為。
表示:使用帶三角箭頭的實(shí)線,箭頭指向父類。示例:
Animal <|-- Person
Animal <|-- Dog2.實(shí)現(xiàn)
定義:類實(shí)現(xiàn)接口或者抽象類,表示類是接口所有特征和行為的實(shí)現(xiàn)
表示:帶三角箭頭的虛線,箭頭指向接口或抽象類。
示例:
Person <|.. Man
Person <|.. Woman3.組合
定義:是一種整體與部分的關(guān)系,但部分不能離開整體而單獨(dú)存在,隨整體的創(chuàng)建而創(chuàng)建,稱為強(qiáng)聚合(也屬于關(guān)聯(lián)關(guān)系的一種),要求代表整體的對(duì)象負(fù)責(zé)代表部分的對(duì)象的生命周期。
表示:帶實(shí)心菱形的實(shí)線,實(shí)心菱形指向整體。示例:
Company *-- Department4.聚合
定義:是一種整體與部分的關(guān)系,且部分可以離開整體而單獨(dú)存在,是關(guān)聯(lián)關(guān)系的一種,強(qiáng)關(guān)聯(lián)關(guān)系。關(guān)聯(lián)和聚合在語(yǔ)法上無(wú)法區(qū)分,必須考察具體的邏輯關(guān)系。
表示:帶空心菱形的實(shí)現(xiàn),空心菱形指向整體。示例:
Car *-- Wheel5.關(guān)聯(lián)
定義:是一種擁有的關(guān)系,它使一個(gè)類知道另一個(gè)類的屬性和方法;關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個(gè)箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個(gè)箭頭。
表示:帶普通箭頭的實(shí)心線,指向被擁有者。
示例:老師與學(xué)生是雙向關(guān)聯(lián),老師有多名學(xué)生,學(xué)生也可能有多名老師。但學(xué)生與某課程間的關(guān)系為單向關(guān)聯(lián),一名學(xué)生可能要上多門課程,課程是個(gè)抽象的東西他不擁有學(xué)生。示例:
Teacher -- Student
Student <-- Course6.依賴
定義:是一種使用關(guān)系,即一個(gè)類的實(shí)現(xiàn)需要另一個(gè)類的協(xié)助。(一個(gè)公司可以有一個(gè)或多個(gè)員工,但一個(gè)員工只能為一家公司工作。)
表示:帶普通箭頭的虛線,箭頭指向被使用者。示例:
Oxygen <.. Animal