設計模式-組合模式(Composite)

定義

將對象以樹形結構組織起來,以達成“部分-整體” 的層次結構,使得客戶端對單個對象和組合對象的使用具有一致性.

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

關係圖

設計模式-組合模式(Composite)

image.png

使用場景

當發現需求中是體現部分與整體層次的結構時,以及希望用戶可以忽略組合對象與單個對象的不同,統一的使用組合結構中的所有對象時,就應該考慮用組合模式了。

將多個對象組合在一起進行操作,常用於表示樹形結構中,例如二叉樹等。

代碼示例

public class TreeNode { private String name; private TreeNode parent; private Vector children = new Vector(); 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 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!"); }}

個人介紹:

高廣超 :多年一線互聯網研發與架構設計經驗,擅長設計與落地高可用、高性能互聯網架構。

本文首發在 高廣超的簡書博客 轉載請註明!


分享到:


相關文章: