码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-22 10:41:33      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:系统   rgs   add   结构   VID   str   print   index   ati   

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

 

以文件夹系统为列子,假如我们要查杀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();
    }

 

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

标签:系统   rgs   add   结构   VID   str   print   index   ati   

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

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