組合模式(Composite):組合模式有時又叫部分-整體模式,將對象組合成樹形結構來表示“部分-整體”層次結構。組合模式在處理樹形結構的問題時比較方便。
##一、uml建模:

##二、代碼實現
~~~
/**
* 示例:組合模式有時也稱“整合-部分”模式
*
* 組合模式在處理樹形結構的問題時比較方便
*
* 節點
*/
class TreeNode {
/**節點名稱 */
private String name;
private TreeNode parent;
private ArrayList<TreeNode> children = new ArrayList<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 delete(TreeNode node) {
children.add(node);
}
public Iterator<TreeNode> getChildren() {
return children.iterator();
}
}
/**
* 客戶端測試類
*
* @author Leo
*/
public class Test {
public static void main(String[] args) {
TreeNode rootNode = new TreeNode("A");
TreeNode bNode = new TreeNode("B");
TreeNode cNode = new TreeNode("C");
TreeNode dNode = new TreeNode("D");
rootNode.add(bNode);
rootNode.add(cNode);
cNode.add(dNode);
Iterator<TreeNode> iterator = rootNode.getChildren();
while (iterator.hasNext()) {
System.out.println(iterator.next().getName());
}
}
}
~~~
**說明**,這里構造了這樣一棵樹:

##三、應用場景
將多個對象組合在一起進行操作,常用于表示樹形結構中,例如二叉樹等。
##四、總結
組合能讓客戶以一致的方式處理個別對象以及對象組合。
- 前言
- (一)策略模式建模與實現
- (二)觀察者模式建模與實現
- (三)裝飾者模式建模與實現
- (四)工廠方法模式建模與實現
- (五)抽象工廠模式建模與實現
- (六)單例模式建模與實現
- (七)命令模式建模與實現
- (八)適配器模式建模與實現
- (九)外觀模式建模與實現
- (十)模板方法模式建模與實現
- (十一)迭代器模式建模與實現
- (十二)組合模式建模與實現
- (十三)狀態模式建模與實現
- (十四)代理模式建模與實現
- (十五)建造者模式建模與實現
- (十六)原型模式建模與實現
- (十七)橋接模式建模與實現
- (十八)責任鏈模式建模與實現
- (十九)備忘錄模式建模與實現
- (二十)解釋器模式建模與實現
- (二十一)享元模式建模與實現
- (二十二)中介者模式建模與實現
- (二十三)訪問者模式建模與實現
- Java設計模式博客全目錄