定义 将对象组合成树形结构以表示“整体 - 部分”的层次结构; 组合模式使客户端对单个对象的组合对象保持一致的方式处理; 叶子对象和组合对象都要实现相同的接口; 适用场景 希望客户端可以忽略组合对象与单个对象的差异时; 处理一个树形结构时; 优点 清楚的定义分层次的复杂对象,表示对象的全部或部分层次; 让客户端忽略了层次的差异,方便对整个层次结构进行控制; 简化客户端代码; 符合开闭原则; 缺点 限制类型时会较为复杂; 使设计变得更加抽象; 相关设计模式 组合模式 & 访问者模式;