zoukankan      html  css  js  c++  java
  • java设计模式--组合模式

    组合模式(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();
        }
  • 相关阅读:
    luogu_1339 [USACO09OCT]热浪Heat Wave
    luogu_1341 无序字母对
    luogu_1330 封锁阳光大学
    luogu_3383 【模板】线性筛素数
    luogu_1095 守望者的逃离
    luogu_1373 小a和uim之大逃离
    查看寄存器
    Assembly oth
    非常详细的端口表汇总
    公式证明
  • 原文地址:https://www.cnblogs.com/jentary/p/5914401.html
Copyright © 2011-2022 走看看