Java設計模式之組合模式
阿新 • • 發佈:2019-02-17
可以看到這裡存在一個天然的遞迴,資料夾中可以包含檔案和資料夾,那麼對資料夾進行查殺,會對裡面的檔案進行查殺,並且對子資料夾裡面的檔案進行查殺。class Folder implements AbstractFile{ private String name; private List<AbstractFile> list = new ArrayList<AbstractFile>(); public Folder(String name) { super(); this.name = name; } public void add(AbstractFile file) { list.add(file); } public void remove(AbstractFile file) { list.remove(file); } public AbstractFile getChild(int index){ return list.get(index); } @Override public void killVirus() { System.out.println("---資料夾:" + name + ",進行查殺"); for(AbstractFile file: list){ file.killVirus(); } } }