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