码迷,mamicode.com
首页 > 编程语言 > 详细

java设计模式--组合模式

时间:2016-09-28 22:20:46      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

组合模式(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设计模式--组合模式

标签:

原文地址:http://www.cnblogs.com/jentary/p/5914401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!