zoukankan      html  css  js  c++  java
  • 组合模式---结构型模式

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

    以文件夹系统为列子,假如我们要查杀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();
        }
    欢迎关注我的公众号:“进阶者euj”
  • 相关阅读:
    HDU 1010 Tempter of the Bone(DFS剪枝)
    HDU 1013 Digital Roots(九余数定理)
    HDU 2680 Choose the best route(反向建图最短路)
    HDU 1596 find the safest road(最短路)
    HDU 2072 单词数
    HDU 3790 最短路径问题 (dijkstra)
    HDU 1018 Big Number
    HDU 1042 N!
    NYOJ 117 求逆序数 (树状数组)
    20.QT文本文件读写
  • 原文地址:https://www.cnblogs.com/yeyongjian/p/8905132.html
Copyright © 2011-2022 走看看