2013-01-24 52 views
2

在下圖中,類「複製」和類「書」顯示聚合(書複製)。所有其他類都是「複製」類的子類。現在,假設有一個Member類,它必須訪問類「Copy」的子類「Lending」和「Borrow」。 'Member'類應該知道的唯一事情是「accessionNumber」。在聚合類中實現連接

如果我們根據代碼考慮這一點,我的「Book」類包含一個「Copy」的數組。

enter image description here

我怎麼能知道某本書的accessionNumber?

假設我需要我的copies數組中第三本書的「accessionNumber」。但是該數組位於Book類中,並且與Copy類中的Book類沒有關係。

如果我們創建一個連接回來,那會是像「複製有一本書」,或更有意義,像「Subject有學生」(以著名的聚集例如「學生主題)?

+0

@LuchianGrigore:因爲這可以在任何這些實現​​。如果某人有能力使用Java(它是我的母語),那麼我可以將它轉換回C++,因爲這只是它處理的方式。 –

+0

您可以始終使用SQL方式並創建一個將Book和Copy鏈接在一起的類。然而,這在C++程序中很少用到。 –

+0

@BartekBanachewicz:嗨,你的意思是我需要一個數據庫?我不允許 –

回答

1

如果我們創建一個連接回來,那會是像「複製有一本書」

不,不會。一個簡單的dependency關係(例如參考或非擁有在C++指針)不是與強有力的組織「擁有」或「擁有」的關係的聚合或組成。這聽起來像你想在這裏。

+0

你好,感謝您的回覆。你的意思是「複製」類中的「Book * bookPtr」(指向書的指針)之類的東西? –

+0

@Yohan:是的,給'Copy'指針或引用其關聯的'Book'。 –

+0

太好了。謝謝:)我真的很感激它:) –