组合模式 Cpmposite

发布时间 2023-12-21 08:54:44作者: 梅丹隆

一、定义

  • 将对象组合成树形结构以表示“整体-部分”的层次结构
  • 组合模式是客户端对单个对象和组合对象保持一致的处理方式


二、适用场景

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

三、优缺点

1、优点

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

2、缺点

  1. 限制类型时会较为复杂
  2. 使设计变得更加抽象

四、代码实现

https://github.com/Meidanlong/all-in-one/tree/master/design/src/main/java/com/mdl/design/pattern/structural/composite

image.png
:::warning
特点:
方法入参对象为类本身对象(instanceof判断应返回true
:::