知识卡片

组合模式的定义与三个角色

普通读书笔记卡 · 1857.a

内容

组合模式把对象组合成树形结构表示”部分-整体”关系,让客户端能用一致方式处理单个对象和 组合对象。三个角色:Component抽象构件(共有方法);Leaf叶子构件(无子节点);Composite 树枝构件(组合子节点,负责add/remove/getChildren)。遍历用递归:叶子直接处理,树枝递归 继续。发散:核心价值是让调用方不用区分”处理的是原子对象还是一整棵子树”。

参考来源

- 位置:《设计模式之禅(第2版)》第21章《组合模式》(源文件:_epub-src/text/part0095.html) - 结论依据:原文给出组合模式定义并说明Component、Leaf、Composite三个角色的职责,并展示通过`if(c instanceof Leaf)`判断分支、对树枝节点递归调用display的遍历实现。 - 原始内容:将对象组合成树形结构以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性……Composite树枝构件,树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构。