聚合和組合

2003 年 5 月 17 日

UML 中鮮少有比聚合和組合更令人困惑的事物,特別是它們與一般關聯的差異。

這個故事的來龍去脈很混亂。在 UML 之前的方法中,有一個常見的概念是定義某種形式的部分-整體關係。問題在於每個方法都為這些關係定義了不同的語意(雖然公平地說,其中一些語意相當自由)。

因此,當標準化的時機來臨時,許多人都想要部分-整體關係,但他們無法就其含義達成共識。因此,UML 定義者引入了兩種關係。

聚合白色菱形)除了常規關聯之外沒有任何語意。正如 Jim Rumbaugh 所說,它是一種建模安慰劑。人們可以而且確實使用它,但它沒有標準含義。因此,如果您看到它,您應該詢問作者對它的含義。我建議您在沒有任何形式的解釋的情況下不要自己使用它。

組合黑色菱形)確實帶有語意。最特別的是,一個物件只能是一個組合關係的一部分。因此,即使視窗和面板都可以容納選單列,任何選單列的實例都只能由一個整體持有。這不是您可以使用常規多重性標記輕鬆表達的約束。