在 Java 设计模式中,组合模式(Composite Pattern) 属于结构型模式,主要用于处理树形结构(部分—整体层次结构),使得用户对单个对象和组合对象的使用具有一致性。
组合模式通常包含以下 4 个部分:
add、remove)public interface Component {
void operation();
}
Component 中的方法public class Leaf implements Component {
@Override
public void operation() {
System.out.println("叶子节点执行");
}
}
add、remove、getChildimport java.util.ArrayList;
import java.util.List;
public class Composite implements Component {
private List<Component> children = new ArrayList<>();
public void add(Component c) {
children.add(c);
}
public void remove(Component c) {
children.remove(c);
}
@Override
public void operation() {
System.out.println("组合节点执行");
for (Component c : children) {
c.operation();
}
}
}
Component 接口操作对象public class Client {
public static void main(String[] args) {
Component leaf1 = new Leaf();
Component leaf2 = new Leaf();
Composite composite = new Composite();
composite.add(leaf1);
composite.add(leaf2);
composite.operation();
}
}
add、remove 定义在 Component 中interface Component {
void add(Component c);
void remove(Component c);
void operation();
}
➡ 客户端使用统一接口
add、remove 只在 Composite 中定义➡ 更安全,但客户端需要判断类型
✅ 统一处理个体和组合
✅ 递归结构(树形)
✅ 依赖抽象(Component)
如果你愿意,我也可以:
需要哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。