摘要:組合模式一組合模式定義將對象組合成樹形結構以表示部分整體的層次結構組合模式使得用戶對單個對象和組合對象的使用具有一致性二實現創建節點類方法調用輸出三優缺點優點調用簡單節點自由增加缺點類間組合,違反依賴倒置原則四源碼
組合模式
一.組合模式 1.1 定義將對象組合成樹形結構以表示“部分-整體”的層次結構.
組合模式使得用戶對單個對象和組合對象的使用具有一致性.
二.實現 2.1 創建節點類public class Node { private String id; private String name; private String parentId; private List2.2 調用children = new ArrayList<>(); public Node(String id, String name, String parentId) { this.id = id; this.name = name; this.parentId = parentId; } //getter,setter方法 public void add(Node node){ List nodeList = this.getChildren(); nodeList.add(node); this.setChildren(nodeList); } public void print(){ System.out.println("node:" + getName()); for(Node node : children){ node.print(); } } }
public static void main(String[] args) { Node node = new Node("1", "root", ""); Node node1 = new Node("2", "composite1", "1"); Node node2 = new Node("3", "leaf1", "1"); Node node3 = new Node("4", "leaf2", "2"); node1.add(node3); node.add(node1); node.add(node2); node.print(); }2.3 輸出
node:root node:composite1 node:leaf2 node:leaf1三.優缺點 3.1 優點
調用簡單.
節點自由增加.
3.2 缺點類間組合,違反依賴倒置原則.
四.源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/69482.html
摘要:,對組合對象執行的操作可以向下傳遞到葉子節點進行操作。組合模式之圖片庫圖片庫可以有選擇地隱藏或顯示圖片庫的全部或某一部分單獨的或是部分的。 本回內容介紹 上一回,聊了橋接模式,做了一道計算題;介一回,聊組合模式(Composite),官方描述組合模式將對象組合成樹形結構以表示部分-整體的層次結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合模式特性 這里我理了一下,就組...
摘要:什么是組合模式什么是組合模式組合模式將對象組合成樹形結構以表示部分整體的層次結構,使得用戶對單個對象和組合對象的使用具有一致性。組合模式應用場景組合模式應用場景只要是樹形結構,就可以考慮使用組合模式。1、什么是組合模式?Compose objects into tree structures to represent part-whole hierarchies.Composite lets...
摘要:組合設計模式組合模式,將對象組合成樹形結構以表示部分整體的層次結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合設計模式 組合模式,將對象組合成樹形結構以表示部分-整體的層次結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性。它使我們樹型結構的問題中,模糊了簡單元素和復雜元素的概念,客戶程序可以像處理簡單元素一樣來處理復雜元素,從而使得客戶程序與復雜元素的內部結...
摘要:簡化了父和子之間的關系。對于子節點來說也是一樣的,過多的接口暴露有時候也是一種濫用,同時也減少了對外部的依賴。 The Composite Pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the...
閱讀 655·2021-11-15 11:39
閱讀 2890·2021-10-08 10:04
閱讀 3252·2019-08-30 10:57
閱讀 3015·2019-08-26 13:25
閱讀 1896·2019-08-26 12:14
閱讀 2626·2019-08-23 15:27
閱讀 2988·2019-08-23 15:18
閱讀 1766·2019-08-23 14:26