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

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

看看關系圖:

z.jpg

直接來看代碼:

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

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 定義將對象以樹形結構組織起來,以達成“部分-整體” 的層次結構,使得客戶端對單個對象和組合對象的使用具有一致性. ...
    高廣超閱讀 594評論 0 15
  • 什么是組合模式 將對象組合成樹形結構以表示“部分-整體”的層次結構,Composite 使得用戶對單個對象和組合對...
    YxxxHao閱讀 1,959評論 0 4
  • 一、設計模式的分類 總體來說設計模式分為三大類: 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者...
    RamboLI閱讀 772評論 0 1
  • 原文鏈接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤獨雜貨鋪閱讀 1,532評論 0 3
  • 還模糊記得初為人師時激動又忐忑的心情。雖每天都忙的像陀螺,但因為我們對未知世界的好奇心,期待心,讓我們的心是...
    初心善良閱讀 605評論 0 6