定义

  • 将对象组合成树形结构以表示 “部分-整体“的层次结构,使得客户端对单个对象和组合对象保持一致的处理方式。可以理解:将多个对象组合成一个对象,简化对多个对象的访问。
  • 隶属于结构型设计模式。

应用场景

  • 希望客户端可以忽略组合对象与单个对象的差异时
  • 处理一个树形结构时

优点

  • 清楚地定义分层次的复杂对象,表示对象的全部或部门层次
  • 让客户端忽略层次的差异,方便对整个层次结构进行控制
  • 简化客户端代码
  • 符合开闭原则

缺点

  • 限制类型时比较复杂
  • 使得设计变得抽象