/**
* 組合設計模式:組合設計模式主要是組裝樹狀的數據,
* 當數據擁有同類型的子節點時,可以使用組合設計模式對數據進行組裝
* @author
* @version 0.1
*/
public class TreeNode {
private String name;
private TreeNode parent;
private List<TreeNode> children = new ArrayList<TreeNode>();
public TreeNode(String name){
this.name = name;
}
//添加子節點方法
public void add(TreeNode node){
children.add(node);
}
//刪除子節點方法
public void remove(TreeNode node){
children.remove(node);
}
//返回子節點的迭代器
public Iterator<TreeNode> getChildren(){
return children.iterator();
}
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;
}
}
/**
* @author
* @version 0.1
*/
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);
}
}