首页 > 代码库 > java设计模式--组合模式

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

 

java设计模式--组合模式