定义:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
使用场景:具有部分-整体结构的场景,如树形菜单,文件夹操作等
实现:树枝内部组合自己的list属性
优点:高层模块调用简单

代码示例:文件夹展示操作
/**
* 文件夹接口
* @author liuhao
*
*/
public abstract class FolderInterface {
protected int index;
protected String type;
public FolderInterface(int index, String type) {
this.index = index;
this.type = type;
}
public abstract void add(FolderInterface folder);
public abstract void remove(FolderInterface folder);
public abstract void show();
}
/**
* 目录
* @author liuhao
*
*/
public class Folder extends FolderInterface {
private List<FolderInterface> folders = new ArrayList<>();
public Folder(int index, String type) {
super(index, type);
}
@Override
public void add(FolderInterface folder) {
folders.add(folder);
}
@Override
public void remove(FolderInterface folder) {
folders.remove(folder);
}
@Override
public void show() {
System.out.println("第"+index+"层,"+type+"!");
for (FolderInterface folderInterface : folders) {
folderInterface.show();
}
}
}
/**
* 文件
* @author liuhao
*
*/
public class File extends FolderInterface {
public File(int index, String type) {
super(index, type);
}
@Override
public void add(FolderInterface folder) {
//不用实现
}
@Override
public void remove(FolderInterface folder) {
//不用实现
}
@Override
public void show() {
System.out.println("第"+index+"层,"+type+"!");
}
}
结果:
2539

被折叠的 条评论
为什么被折叠?



