更新時間:2019-12-10 16:25:46 來源:動力節點 瀏覽2793次
什么是關系?
關系是指事物之間存在單向或雙向的作用或者影響的狀態。其中類與類之間要么有關系要么沒關系,感覺這句話有點說的很無恥,誰都知道,但是其中奧妙在于很難確定類與類之間是否有關系。證明兩個或者多個類是否存在關系涉及到業務、架構、模塊邊界的問題,然而由于業務模型的抽象角度不同而不同,確定他們是否有關系是一件很不簡單的事情。
Java類有關系的6種情況
繼承:extends【is-a】
實現:implements【can do】
組合:類是成員變量【contain-a】
聚合:類是成員變量【is-a】
依賴:是除了組合與聚合外的單向弱關系。比如使用一個類的屬性、方法,或以其作為方法的參數傳入,或以其作為方法的返回值輸出
【depends-a】
關聯:相互是平等關系的依賴【links-a】
以上六種關系中繼承和實現是很容易辨別的關系。但是在設計過程中要注意組合、聚合、依賴和關聯這四個的區別。
繼承:
繼承關系包括子類和父類、子接口和父接口之間兩種繼承關系。用空心三角形和實線表示這種繼承關系。
實現:
類和接口之間的關系,用空心三角形和虛線表示。
依賴:
A類會用到B類,這種關系具有偶然性,臨時性。但B類的變化會影響A類。這種在代碼中的體現為:A類方法中的參數包含了B類。 由虛線和箭頭表示
關聯:
A類會用到B類,這是一種強依賴關系,是長期的并非偶然。在代碼中的表現為:A類的成員變量中含有B類。
由實線和箭頭表示。
聚合:
關聯關系的一種特例,是整體和部分的關系,即has-a的關系。整體和部分之間是可分離的,擁有各自的生命周期。 和組合關系的整體和部分關系不同的是:該整體包含很多個部分,但這里的部分都是相同的。比如鳥群和鳥的關系是聚合關系,鳥群中每個部分都是鳥。由空心菱形和實線箭頭表示。
組合關系:
也是關聯關系的一種特例,它體現一種contains-a的關系,這種關系比聚合更強,也稱為強聚合。它同樣體現整體與部分的關系,但這種整體和部分是不可分割的,他們具有相同的生命周期。 和聚合關系相比:這種部分和整體的關系表現為,整體包含該部分,但也包含其他部分,其他部分和該部分并不相同。比如cpu和計算機是組合關系,計算機包含cpu,但又不僅僅是cpu還有屏幕鍵盤等。其他的部分不和cpu是同樣的。 由實心菱形和實線箭頭表示。
以上就是動力節點Java培訓機構小編介紹的“怎么理解Java中類之間的6種關系”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習