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”
  • 相关阅读:
    JQuery MultiSelect(左右选择框)
    jquery隐藏table表格的某一列
    JS刷新页面的几种方法
    jQuery对select操作小结
    更新数据前jquery如何填充数据到表单域中
    hibernate中load和get方法的区别
    java项目常用 BaseDao BaseService
    js判断360浏览器 兼容模式IE版本
    vue 文本比较插件
    vue问题总结
  • 原文地址:https://www.cnblogs.com/yeyongjian/p/8905132.html
Copyright © 2011-2022 走看看