概念
组合模式,就是将对象组合成树形结构,以便使用相同的方式访问单个对象和访问树形结构。
这儿最最关键的,莫过于树形结构
,而这也是组合模式的结构。我们常用组合模式实现以下场景:
- 遍历;
- 对象嵌套;
- 文件夹/文件
示例
public class Main {
public static void main(String[] args) {
new Dir("root",
Arrays.asList(
new File("abc.txt"),
new File("def.txt")
),
Collections.singletonList(
new Dir(
"zookeeper",
Collections.<File>emptyList(),
Collections.<Dir>emptyList()
)
)
);
}
interface Item {
String name();
}
public static class File implements Item {
private String name;
public File(String name) {
this.name = name;
}
@Override public String name() {
return name;
}
}
public static class Dir implements Item {
private String name;
private List<File> files;
private List<Dir> dirs;
public Dir(String name, List<File> files, List<Dir> dirs) {
this.name = name;
this.files = files;
this.dirs = dirs;
}
@Override public String name() {
return name;
}
}
}
网友评论