Java中類與類之間的關係以及自己的理解

2021-08-03 17:06:14 字數 628 閱讀 4422

網上關於此類的討論非常多,發現對於該問題的理解各有各的說法,而各個說法中又相去甚遠。通過瀏覽這些討論以及對《o'reilly - uml 2.0 in a nutshell (2007)》的參考,發表一下自己的看法

類間關係有很多種,在大的類別上可以分為兩種:縱向關係、橫向關係。

縱向關係就是繼承關係,它的概念非常明確,也成為oo的三個重要特徵之一,這裡不過多的討論。

橫向關係較為微妙,按照uml的建議大體上可以分為四種:

依賴    (dependency)

關聯    (association)

聚合    (aggregation)

組合    (composition)

它們的強弱關係是沒有異議的:依賴 < 關聯 < 聚合 < 組合

然而它們四個之間的差別卻又不那麼好拿捏,需要好好體會。

依賴:

關聯:

聚合:  

組合:

從以上的講述中可以看出來,關聯、聚合、組合三種關係都是保持乙個物件的引用,並且關係是逐漸增強的,從**上很難看出區別,只能通過語義來區分:

當然最簡單的理解他們的方式是通過這些關係的英文含義來記住它們,關聯是has a,聚合是owns a,組合是is a part of。

Java類之間的關係

常見的有 依賴 聚合 繼承 依賴,即 uses a 最明顯的 最常見的關係。例如 order類使用account類是因為order物件需要訪問account物件檢視信用狀態。但是,item類不依賴於account類。這是因為item物件與賬戶無關。因此,如果乙個類的方法操縱另乙個類的物件,就說乙個類...

類與類之間的關係

uml uml是統一建模語言 為軟體開發提供一些標準的圖例,統一開發思想,從而促進團隊協作 在軟體過程中,會用到uml 分析 設計 編碼 測試 維護 主流的有 rup rational unified process 合理的統一過程 強調軟體開發一開始就要有好的設計 才能有好的設計 xp程式設計 e...

類與類之間的關係

1.在乙個類中將被聚合元素作為其屬性 如果所有類都會用到乙個類的物件,則把它作為屬性 在任何方法的任何類,都可以建立物件 package 聚合 public class car public static void main string args package 聚合 public class w...