美文网首页
结构型模式 --- 组合模式

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

作者: 十二找十三 | 来源:发表于2020-03-17 09:41 被阅读0次
将对象组合成树状的层次结构的模式,用来表示“部分-整体”的关系,使用户对单个对象和组合对象具有一致的访问性
package study.org;

import java.util.ArrayList;

public class Demo {
    public static void main(String[] args) {
        Composite component = new Composite();
        
        Leaf leaf1 = new Leaf();
        leaf1.tag = "1";
        component.add(leaf1);
        
        Leaf leaf2 = new Leaf();
        leaf2.tag = "2";
        component.add(leaf2);
        
        Composite component1 = new Composite();
        
        Leaf leaf3 = new Leaf();
        leaf3.tag = "3";
        component1.add(leaf3);
        
        component.add(component1);
        
        component.operation();

    }
}

abstract class Component {
    public abstract void add(Component c); // 增加成员

    public abstract void remove(Component c); // 删除成员

    public abstract Component getChild(int i); // 获取成员

    public abstract void operation(); // 业务方法
}

class Leaf extends Component {
    String tag;
    
    public void add(Component c) {
        // 异常处理或错误提示
    }

    public void remove(Component c) {
        // 异常处理或错误提示
    }

    public Component getChild(int i) {
        // 异常处理或错误提示
        return null;
    }

    public void operation() {
        System.out.println(tag);
    }
}

class Composite extends Component {  
    private ArrayList<Component> list = new ArrayList<Component>();  
      
    public void add(Component c) {  
        list.add(c);  
    }  
      
    public void remove(Component c) {  
        list.remove(c);  
    }  
      
    public Component getChild(int i) {  
        return (Component)list.get(i);  
    }  
      
    public void operation() {  
        //容器构件具体业务方法的实现  
        //递归调用成员构件的业务方法  
        for(Object obj:list) {  
            ((Component)obj).operation();  
        }  
    }     
}


相关文章

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • 设计模式:组合模式 职责链模式

    组合模式 职责链模式 组合模式 组合模式将对象组合成树形结构,以表示“部分-整体”的层次结构。 在组合模式的树形结...

  • 结构型模式:组合模式

    文章首发:结构型模式:组合模式 七大结构型模式之三:组合模式。 简介 姓名 :组合模式 英文名 :Composit...

  • 设计模式笔记(10)--组合模式

    组合模式--类似树结构 GOF对组合模式的定义是:“将对象组合成树形结构以表示“部分-整体”的层次结构。”组合模式...

  • java23种设计模式

    创建型 抽象工厂模式工厂方法建造者模式原型模式单态模式 结构型 适配器模式桥接模式组合模式外观模式装饰者模式享元模...

  • 结构型模式:09-组合模式

    透明组合模式的完整结构 安全组合模式的完整结构

  • 组合模式

    设计模式之组合模式 什么是组合模式? 组合模式允许你将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以...

  • 组合模式

    模式定义 将对象组合成树型结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性...

  • JavaScript设计模式 | 14-组合模式

    1、模式定义 组合模式,又称“部分-整体”模式,把对象组合成树形结构,以表示出“部分-整体”的层次结构。组合模式,...

  • 2022-03-16

    组合模式 应用场景 整体与部分的结构特征相似,数据以树型的层次结构表达。例如文件系统、树等 透明式的组合模式安全式...

网友评论

      本文标题:结构型模式 --- 组合模式

      本文链接:https://www.haomeiwen.com/subject/urezehtx.html