Java 组合模式(Composite Pattern) 是 结构型设计模式 的一种,主要用于处理树形结构(整体-部分关系),让单个对象(叶子) 和 组合对象(容器) 在使用时具有一致性。
让客户端可以统一对待“单个对象”和“对象集合”
✅ 菜单 / 文件目录
✅ UI 组件树
✅ 组织结构(部门 + 员工)
✅ 任何“部分-整体”的层级结构
定义叶子 and 容器共有的方法
public abstract class Component {
public void add(Component c) {
throw new UnsupportedOperationException();
}
public void remove(Component c) {
throw new UnsupportedOperationException();
}
public abstract void operation();
}
不能有子节点
public class Leaf extends Component {
@Override
public void operation() {
System.out.println("叶子节点执行");
}
}
可以包含子节点
import java.util.ArrayList;
import java.util.List;
public class Composite extends Component {
private List<Component> children = new ArrayList<>();
@Override
public void add(Component c) {
children.add(c);
}
@Override
public void remove(Component c) {
children.remove(c);
}
@Override
public void operation() {
System.out.println("容器节点执行");
for (Component c : children) {
c.operation();
}
}
}
public class Client {
public static void main(String[] args) {
Composite root = new Composite();
root.add(new Leaf());
Composite branch = new Composite();
branch.add(new Leaf());
root.add(branch);
root.operation();
}
}
组合模式让你用统一的方式,操作“一个对象”和“一组对象”。
如果你愿意,我可以给你一个真实项目示例(如文件系统等)或和装饰模式的区别说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。