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();
    }
原文地址:https://www.cnblogs.com/jentary/p/5914401.html