0

我有一个关于复合模式的问题。

基类“组件”是否像指向“复合”类中的叶对象的指针一样?

编辑: 让我用下面的话问我的问题。 “Composite 和 Component 类之间有什么关系?”

这是该模式的uml类图。

替代文字

4

3 回答 3

3

复合与组件的关系:

1) Leaf 和 Composite 通常实现一个接口或一个抽象类。在您的图表中,它们扩展了 Component。因此,图表上的关系是继承

2) Composite 包含 Component 的实例。Component,因为它偶尔可以是 Composite,也可以包含 Component 的实例。这称为递归组合。通常,这种关系称为聚合

于 2010-03-12T16:59:35.257 回答
1

零件

  • 是所有组件的抽象,包括复合组件
  • 声明组合中对象的接口
  • (可选)在递归结构中定义一个用于访问组件父级的接口,并在合适的情况下实现它

叶子

  • 表示组合中的叶对象
  • 实现所有组件方法

合成的

  • 表示复合组件(具有子组件的组件)
  • 实现方法来操纵孩子
  • 实现所有 Component 方法,通常通过将它们委托给其子级

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

于 2010-03-12T16:42:23.903 回答
0

所有容器和容器类都声明与接口(组件)的“是”关系。

所有容器类都声明与接口的一对多“具有”关系。

更多在这里

于 2011-05-15T04:19:12.657 回答