首页 > 其他 > 详细

组合模式---结构型模式

时间:2018-04-22 10:13:05      阅读:138      评论:0      收藏:0      [点我收藏+]

组合模式(一般用于树状结构,其实有点想发布订阅模式)

 

以文件夹系统为列子,假如我们要查杀D盘下的文件

 

文件夹对象和文件对象都有查杀方法,而文件夹对象还有增、删、查的功能

public interface AdFile {
    void kill();
}

 interface FloerFile extends AdFile {
    void add(AdFile file);
    void dele(AdFile file);
     AdFile getFile(int index);
}

 

 

增加图片文件、视频文件、和文件夹calss

class ImgFile implements AdFile{

    @Override
    public void kill() {
        System.out.println("图片查杀");
    }
}
class VideoFile implements AdFile{

    @Override
    public void kill() {
        System.out.println("视频查杀");
    }
}
public class Floer implements FloerFile {
    List<AdFile> fileList;

    String name;

    Floer(String name){
        fileList = new ArrayList<AdFile>();
        this.name=name;
    }

    @Override
    public void kill() {
        fileList.stream().forEach(f->{
            f.kill();
        });
    }

    @Override
    public void add(AdFile file) {
        fileList.add(file);
    }

    @Override
    public void dele(AdFile file) {
        fileList.remove(file);
    }

    @Override
    public AdFile getFile(int index) {
        return fileList.get(index);
    }

}

 

 

主函数,构件一个文件夹,然后查杀

    public static void main(String[] args) {
        FloerFile floer = new Floer("c");
        FloerFile look = new Floer("look");
        floer.add(look);
        look.add(new ImgFile());
        look.add(new VideoFile());
        floer.kill();
    }

 

组合模式---结构型模式

原文:https://www.cnblogs.com/yeyongjian/p/8905132.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!