java设计模式--组合模式
组合模式(composite):用统一的方式处理整体和部分,多用于树形结构数据的处理。
分为3个部分
1.容器
2.叶子
3.抽象组件
//抽象组件 public interface AbstractFile { //杀毒 void shadu(); } //叶子组件 class ImageFile implements AbstractFile{ private String name; public ImageFile(String name) { super(); this.name = name; } public void shadu() { System.out.println("杀图像文件"); }; } //容器组件 class Rongqi implements AbstractFile{ private String name; private List<AbstractFile> list= new ArrayList<AbstractFile>(); public Rongqi(String name) { super(); this.name = name; } public void add(AbstractFile c){ list.add(c); } public void remove(AbstractFile c){ list.remove(c); } public AbstractFile getChild(int index){ return list.get(index); } public void shadu() { System.out.println("文件夹杀毒"); //天然递归 for (AbstractFile abstractFile : list) { abstractFile.shadu(); } } }
public static void main(String[] args) { AbstractFile f1 = new ImageFile("图片1"); AbstractFile f2 = new ImageFile("图片2"); Rongqi f0 = new Rongqi("文件夹1"); f0.add(f1); f0.add(f2); f0.shadu(); }