组合模式

组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图:

直接来看代码:

[java] view plain copy
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();  
}  

}
[java] view plain copy
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!");  
}  

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 继承是is-a的关系。组合和聚合有点像,有些书上没有作区分,都称之为has-a,有些书上对其进行了较为严格区分,组...
    时待吾阅读 475评论 0 1
  • 【学习难度:★★★☆☆,使用频率:★★★★☆】直接出处:组合模式梳理和学习:https://github.com/...
    BruceOuyang阅读 1,017评论 0 1
  • 转:http://www.runoob.com/design-pattern/composite-pattern....
    right_33cb阅读 215评论 0 0
  • 题外话 本来是周更的频率, 因为真实的"小光"真实地逃离了北京, 回了武汉, 回了老家, 处理了一些私人事务. 也...
    anly_jun阅读 2,829评论 0 8
  • “这有什么!你以为现在的林黛玉象从前那个《红楼梦》里的呀,你没看她那架势,要不改天你也找她试试!”宝玉一边继续感觉...
    可可豆子阅读 361评论 0 5