3.3、组合模式

意图
- 将对象组合成树型结构以表示“部分 - 整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性
概念
- 适用于:
代码
java
public class Composite {
AbstractFile folderA = new Folder("folderA");
AbstractFile fileB = new File("fileB")
}
abstract class AbstractFile {
protected String name;
public void printName(string name) {
System.out.println(name)
}
public abstract void Add(AbstractFile file);
public abstract void Remove(AbstractFile file);
public abstract List<AbstractFile> GetChild();
}
class Folder extends AbstractFile {
private List<AbstractFile> folders = new ArrayList<AbstractFile>();
public Folder(String name) {
this.name = name;
}
@override
public void add(AbstractFile file) {
folders.add(file)
}
@override
public void remove(AbstractFile file){
folders.remove(file)
}
@override
public List<AbstractFile> Getchild(){
return folders;
}
}
class File extends AbstractFile {
public File(String name) {
this.name = name;
}
@override
public void add(AbstractFile file) {
return;
}
@override
public void remove(AbstractFile file){
return;
}
@override
public List<AbstractFile> Getchild(){
return null;
}
}