1. 程式人生 > >十三、結構型模式----組合模式

十三、結構型模式----組合模式

一、組合模式

組合模式有時又叫部分-整體模式在處理類似樹形結構的問題時比較方便,看看關係圖:

直接來看程式碼:

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!");
	}
}

二、總結

使用場景:將多個物件組合在一起進行操作,常用於表示樹形結構中,例如二叉樹,數等。

組合—Mary今天過生日。“我過生日,你要送我一件禮物。”“嗯,好吧,去商店,你自己挑。”“這件T恤挺漂亮,買,這條裙子好看,買,這個包也不錯,買。”“喂,買了三件了呀,我只答應送一件禮物的哦。”“什麼呀,T恤加裙子加包包,正好配成一套呀,小姐,麻煩你包起來。”“……”,MM都會用Composite模式了,你會了沒有?

合成模式:合成模式將物件組織到樹結構中,可以用來描述整體與部分的關係。合成模式就是一個處理物件的樹結構的模式。合成模式把部分與整體的關係用樹結構表示出來。合成模式使得客戶端把一個個單獨的成分物件和由他們複合而成的合成物件同等看待。