组合模式(Composite Pattern)

2019-11-03 05:58发布

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

是基类“分量”像一个指针指向“综合”类叶对象?

编辑:让我问我的问题在下面的话。 “什么是复合和分量类之间的关系?”

这里是该图案的UML类图。

Answer 1:

复合材料和部件之间的关系:

1)叶和复合通常实现一个接口或一个抽象类。 在您的图表他们延长部件。 所以,你图上的关系是继承

2)复合材料含有成分的实例。 组成部分,因为它有时可以复合,也可以包含组件的实例。 这就是所谓的递归组合 。 在一般情况下,关系称为聚集



Answer 2:

零件

  • 是抽象所有组件,包括复合的人
  • 声明接口用于该组合物的对象
  • (可选)定义的接口,用于在递归结构访问组件的父,并实现它,如果这是适当

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

综合

  • 表示的复合组件(具有分量的儿童)
  • 实现的方法来操纵儿童
  • 实现所有组件的方法,一般由他们委托给它的孩子

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



Answer 3:

所有容器和containee类声明“是”到接口( 成分 )的关系。

所有的容器类申报一个一对多“有”到接口关系。

更多在这里



文章来源: Composite Pattern