Skip to content

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;
    }
  }

KESHAOYE-知识星球 V20251108213032