知识卡片
组合模式的定义与三个角色
内容
组合模式把对象组合成树形结构表示”部分-整体”关系,让客户端能用一致方式处理单个对象和 组合对象。三个角色:Component抽象构件(共有方法);Leaf叶子构件(无子节点);Composite 树枝构件(组合子节点,负责add/remove/getChildren)。遍历用递归:叶子直接处理,树枝递归 继续。发散:核心价值是让调用方不用区分”处理的是原子对象还是一整棵子树”。
参考来源
- 位置:《设计模式之禅(第2版)》第21章《组合模式》(源文件:_epub-src/text/part0095.html)
- 结论依据:原文给出组合模式定义并说明Component、Leaf、Composite三个角色的职责,并展示通过`if(c instanceof Leaf)`判断分支、对树枝节点递归调用display的遍历实现。
- 原始内容:将对象组合成树形结构以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性……Composite树枝构件,树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构。