一、概念编程
组合模式将对象组合成树形结构以表示“部分-总体”的层次结构。它使得客户对单个对象和复合对象的使用具备一致性,属于结构性模式。 bash
二、模式结构ide
三、使用场景ui
四、优缺点this
优势:spa
缺点:设计
五、实例code
public abstract class File {
private String name;
public File(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void display();
}
复制代码
public class Folder extends File {
private List<File> files;
public Folder(String name) {
super(name);
files = new ArrayList<>();
}
@Override
public void display() {
for (File file : files) {
file.display();
}
}
public void add(File file) {
files.add(file);
}
public void remove(File file){
files.remove(file);
}
}
复制代码
public class ImageFile extends File {
public ImageFile(String name) {
super(name);
}
@Override
public void display() {
// image的业务逻辑
}
}
复制代码
public class TextFile extends File {
public TextFile(String name) {
super(name);
}
@Override
public void display() {
// text的业务逻辑
}
}
复制代码