首页 > 其他分享 >设计模式-组合模式

设计模式-组合模式

时间:2023-05-16 13:05:48浏览次数:26  
标签:TreeNode name 组合 void 模式 new 设计模式 public String


[url]http://zz563143188.iteye.com/blog/1847029[/url]
组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图:
[img]http://dl.iteye.com/upload/attachment/0083/1205/09cab656-5ff9-380e-9df1-326339ac3509.jpg[/img]
直接来看代码:

public class TreeNode {  

    private String name;  
    private TreeNode parent;  
    private Vector<TreeNode> children = new Vector<TreeNode>();  

    public TreeNode(String name){  
        this.name = name;  
    }  

    public String getName() {  
        return name;  
    }  

    public void setName(String name) {  
        this.name = name;  
    }  

    public TreeNode getParent() {  
        return parent;  
    }  

    public void setParent(TreeNode parent) {  
        this.parent = parent;  
    }  

    //添加孩子节点  
    public void add(TreeNode node){  
        children.add(node);  
    }  

    //删除孩子节点  
    public void remove(TreeNode node){  
        children.remove(node);  
    }  

    //取得孩子节点  
    public Enumeration<TreeNode> getChildren(){  
        return children.elements();  
    }  
}


public class Tree {  

    TreeNode root = null;  

    public Tree(String name) {  
        root = new TreeNode(name);  
    }  

    public static void main(String[] args) {  
        Tree tree = new Tree("A");  
        TreeNode nodeB = new TreeNode("B");  
        TreeNode nodeC = new TreeNode("C");  

        nodeB.add(nodeC);  
        tree.root.add(nodeB);  
        System.out.println("build the tree finished!");  
    }  
}


使用场景:将多个对象组合在一起进行操作,常用于表示树形结构中,例如二叉树,数等。


标签:TreeNode,name,组合,void,模式,new,设计模式,public,String
From: https://blog.51cto.com/u_3871599/6283472

相关文章

  • 设计模式-原型模式
    [url]http://zz563143188.iteye.com/blog/1847029[/url]原型模式(Prototype)原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进......
  • 23种设计模式的必备结构图
    这里总结了23种设计模式的结构图及定义,样例代码在Github:studeyang/design-pattern。一、创建型模式1.1简单工厂模式1.2工厂方法模式工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。1.3抽象工厂模式抽象工厂......
  • 基于人工蜂群(ABC)算法和粒子群优化算法的组合求解路径优化问题附Matlab代码
    基于人工蜂群(ABC)算法和粒子群优化算法的组合求解路径优化问题附Matlab代码针对经典人工蜂群算法在机器人路径规划中易于陷入局部极值,且寻优过程收敛速度较慢等问题,提出了一种基于粒子群改进人工蜂群算法.通过设计变异算子来增大极值在陷入局部最优时的跳出概率,提高机器人路径......
  • 【设计模式】使用 go 语言实现简单工厂模式
    最近在看《大话设计模式》,这本书通过对话形式讲解设计模式的使用场景,有兴趣的可以去看一下。第一篇讲的是简单工厂模式,要求输入两个数和运算符号,得到运行结果。这个需求不难,难就难在类要怎么设计,才能达到可复用、维护性强、可拓展和灵活性高。运算符可能是加、减、乘、除,未了方......
  • Java设计模式-简单工厂模式
    简介在软件开发过程中,设计模式是一种被广泛应用的实践,它是通过总结、归纳和提炼出软件设计经验,从而使得设计更加优雅、高效。简单工厂模式是设计模式中最基本、最简单的一种模式,它能够有效地封装对象的创建过程,简化代码结构。简单工厂模式又称为静态工厂方法模式,它是通过定义一......
  • Java设计模式-桥接模式
    简介桥接模式(BridgePattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(GangofFour)提出,在《设计模式》一书中有详细的介绍。桥接模式和其他设计模式的区别在于它关注的是如何将抽象和实现分离,从而达到灵......
  • 第八章 组合逻辑电路
          数字电路用于对数字量信息进行传送、运算、变换、比较、存储等操作。按逻辑功能的特点不同,可以把数字电路分成两类:组合逻辑电路和时序逻辑电路,本章仅介绍组合电路。       组合逻辑电路(CombinationalLogicCircuit)的功能特点是:电路在任意时刻的输出状态,仅......
  • django系列-起源&MTV设计模式
    一、django起源Django是一个开放源代码的Web应用框架,使用Python语言编写完成。由于Python语言是跨平台的,所以,不论操作系统是Windows、Linux还是macOSX,都可以开发Django应用。Web框架是一套组件,提供通用的设计模式,能够最大程度地降低开发Web站点的难度。Django的设计目标就是使开......
  • 湖北省智能科教研究会走进璞华,调研璞公英教学平台个性化教学新模式
    2023年5月9日,热烈祝贺湖北省智能科教研究会红5月智能科教走进璞华集团活动圆满成功。会议上,大家畅所欲言,对教育体制改革与教育信息化产品创新,科技成果转化、产教融合、资源互补、学生能力培养等方面展开充分沟通和探讨。5月9日上午,华中师范大学教授、伍伦贡联合研究院院长、湖北......
  • 工程监测NLM5无线中继采集发送仪的工作模式
    工程监测NLM5无线中继采集发送仪的工作模式 NLM5xx有自动定时启动和随时无线唤醒两种工作模式。可定时启动或者使用无线读数仪将其唤醒采集传感器数据并经LoRA无线发送。多达16通道的传感器接口,最多可连接16个振弦、温度或者模拟信号(电压/电流)。内置大容量存储器,可做为......