0%

组合模式

思想

可以理解为树,类中维护节点集合;

描述

又叫部分-整体模式,一个节点类,内有子节点对象(类型也是节点类类型,可能是个列表)

适用

处理类似树型结构的问题时比较方便

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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 Test {
public static void printMsg(String msg){
System.out.println(msg);
}
TreeNode root = null;
public Test(String name){
root = new TreeNode(name);
}
public static void main(String[] args){
Test tree = new Test("A");
TreeNode node_b = new TreeNode("B");
TreeNode node_c = new TreeNode("C");
node_b.add(node_c);
tree.root.add(node_b);
Test.printMsg("build tree");

}
}