2010-03-12 55 views
0

我有關於複合圖案的問題。複合圖案

基類「組件」的行爲像一個指向「複合」類中的葉對象的指針嗎?

編輯: 讓我用下面的話問我的問題。 「Composite和Component類之間的關係是什麼?」

這是模式的uml類圖。

alt text

+0

我的意思是說指針就是引用。 – 2010-03-12 16:23:46

+0

你的問題不清楚。 – 2010-03-12 16:23:52

+0

阿米特:清澈透明。你也可以看到圖表,並看看菱形符號。 – 2010-03-12 16:27:23

回答

3

複合材料和部件之間的關係:

1 )Leaf和Composite通常實現一個接口或一個抽象類。在你的圖中,他們擴展了Component。所以,你圖上的關係是繼承

2)Composite包含Component的實例。組件,因爲它偶爾可以是Composite,也可以包含Component的實例。這被稱爲遞歸組合。通常,關係被稱爲聚合

+0

確實,它是聚合關係。 – 2010-03-12 17:01:50

+1

@Syed:不完全如我所說,Component和Composite之間有2種關係:繼承和聚合。結合這兩種關係給我們一個在oop理論中被稱爲遞歸組合*的結構。 – Roman 2010-03-12 17:06:37

1

元器件

  • 是所有組件的抽象,包括複合那些
  • 聲明接口,用於在所述組合物的對象
  • (可選)定義的接口,用於訪問一個組件的遞歸結構中的父項,並在適當的情況下實現它。

  • 表示在所述組合物
  • 實現所有組件方法

複合

  • 葉對象表示複合部件(具有分量的兒童)
  • 實現的方法來操作的兒童
  • 實現所有組分的方法,通常通過他們委託給其子

http://en.wikipedia.org/wiki/Composite_pattern

+0

我的問題是關於複合和組件之間的關係。 正如你可以看到複合類的鑽石形狀符號。 – 2010-03-12 16:50:12

0

所有容器和集裝箱類別聲明與接口的「是」關係(組件)。

所有容器類聲明一個一對多與接口有「關係」。

更多here