Composite (Object Tree)
应用场景解释
- 当需要构造一个类似树的结构
- 希望调用方对简单或者复杂的元素都能统一的调用
应用步骤重点
- 确认目标模型是一个可以拆分为递归组合的树结构. 必须包含 简单元素(没有子元素) 和 复杂组件(可以包含简单元素和其他复杂组件)
- 抽象出简单元素和 复杂组件的通用行为 interface
- 创建简单元素类
- 创建复杂组件类, 须有有一个数组类型字段, 来存储子元素, 且须有可以保存简单元素或者其他复杂组件类型. 实现 interface 的具体行为中,是循环调用的数组中元素的对应实现来计算的, 只是个代理, 自己并没有复杂逻辑
- 给复杂组件添加 增删改查操作