一、正式定义:
允许你将对象组合成树形结构来表现“整体/部分”层次机构。组合能让客户以一致的方式处理个别对象以及对象组合。
二、实例说明:
1)、菜单和菜单项组成的对象树,可以视为一个整体。其中包括带有子菜单的菜单项和没有子菜单的菜单项。即任何一个菜单都是一种组合。带有子菜单的项作为菜单,由此可见这个“组合”既可以包括其他菜单,也可以包含菜单项。个别对象就是菜单项——并未持有其他对象。
通过简单的代码就能够对整个菜单结构应用相同的操作。(例如:打印)。组合实现中常用的是迭代器进行遍历。