组合模式(Composite Pattern) 是一种结构型设计模式,核心思想是:
将对象组合成树形结构,以表示“部分-整体”的层次关系,使客户端对单个对象和组合对象的使用具有一致性。
下面用 Java 示例 从 定义、结构、实现、应用场景 四方面说明。
operation())public abstract class FileSystemNode {
protected String name;
public FileSystemNode(String name) {
this.name = name;
}
public abstract void print();
}
public class File extends FileSystemNode {
public File(String name) {
super(name);
}
@Override
public void print() {
System.out.println("文件:" + name);
}
}
import java.util.ArrayList;
import java.util.List;
public class Folder extends FileSystemNode {
private List<FileSystemNode> children = new ArrayList<>();
public Folder(String name) {
super(name);
}
public void add(FileSystemNode node) {
children.add(node);
}
public void remove(FileSystemNode node) {
children.remove(node);
}
@Override
public void print() {
System.out.println("文件夹:" + name);
for (FileSystemNode node : children) {
node.print();
}
}
}
public class Client {
public static void main(String[] args) {
Folder root = new Folder("根目录");
File file1 = new new File("a.txt");
Folder subFolder = new Folder("子文件夹");
File file2 = new File("b.txt");
subFolder.add(file2);
root.add(file1);
root.add(subFolder);
root.print();
}
}
✅ 客户端无需关心是文件还是文件夹
✅ Java 中的应用
✅ 业务场景
如果你愿意,我可以:
你想往哪方面深入?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。