一、概念編程
組合模式將對象組合成樹形結構以表示「部分-總體」的層次結構。它使得客戶對單個對象和複合對象的使用具備一致性,屬於結構性模式。 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的業務邏輯
}
}
複製代碼