2010-03-12 56 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