合成模式属于对象的结构模式,有时又叫做“部分-整体”模式。合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。

结构类图

composite

Component:这是一个抽象角色,它给参与组合的对象规定一个接口。这个角色给出共有接口及其默认行为,可以用来管理所有的子对象。合成对象通常把它所包含的子对象当作类型为Component的对象。在安全模式的合成模式里,构件角色并不定义出管理子对象的方法,这一定义由树枝构件对象给出。

Leaf:代表餐价组合的树叶对象。一个树叶对象没有下级子对象,定义了参加组合的原始对象的行为。

Composite:代表参加组合的有子对象的对象,并给出树枝构件对象的行为。树枝构件给出了所有的管理子对象的方法,如add、remove以及getChild。