摘要:組合模式一組合模式定義將對象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu)組合模式使得用戶對單個對象和組合對象的使用具有一致性二實(shí)現(xiàn)創(chuàng)建節(jié)點(diǎn)類方法調(diào)用輸出三優(yōu)缺點(diǎn)優(yōu)點(diǎn)調(diào)用簡單節(jié)點(diǎn)自由增加缺點(diǎn)類間組合,違反依賴倒置原則四源碼
組合模式
一.組合模式 1.1 定義將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu).
組合模式使得用戶對單個對象和組合對象的使用具有一致性.
二.實(shí)現(xiàn) 2.1 創(chuàng)建節(jié)點(diǎn)類public class Node { private String id; private String name; private String parentId; private List2.2 調(diào)用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三.優(yōu)缺點(diǎn) 3.1 優(yōu)點(diǎn)
調(diào)用簡單.
節(jié)點(diǎn)自由增加.
3.2 缺點(diǎn)類間組合,違反依賴倒置原則.
四.源碼https://github.com/Seasons20/DisignPattern.git
END
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69482.html
摘要:安全式組合模式中的抽象構(gòu)件不聲明管理子類的接口,把操作移交給子類完成。組合模式實(shí)現(xiàn)樣例使用組合模式實(shí)現(xiàn)目錄和課程之間的關(guān)系。 0x01.定義與類型 定義:將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),使客戶端對單個對象和組合對象保持一致的方式處理 組合模式實(shí)現(xiàn)的最關(guān)鍵的地方是:簡單對象和復(fù)合對象必須實(shí)現(xiàn)相同的接口,這就是組合模式能夠?qū)⒔M合對象和簡單對象進(jìn)行一致處理的原因。 類型:結(jié)...
摘要:,對組合對象執(zhí)行的操作可以向下傳遞到葉子節(jié)點(diǎn)進(jìn)行操作。組合模式之圖片庫圖片庫可以有選擇地隱藏或顯示圖片庫的全部或某一部分單獨(dú)的或是部分的。 本回內(nèi)容介紹 上一回,聊了橋接模式,做了一道計算題;介一回,聊組合模式(Composite),官方描述組合模式將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合模式特性 這里我理了一下,就組...
摘要:什么是組合模式什么是組合模式組合模式將對象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu),使得用戶對單個對象和組合對象的使用具有一致性。組合模式應(yīng)用場景組合模式應(yīng)用場景只要是樹形結(jié)構(gòu),就可以考慮使用組合模式。1、什么是組合模式?Compose objects into tree structures to represent part-whole hierarchies.Composite lets...
摘要:組合設(shè)計模式組合模式,將對象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu),組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合設(shè)計模式 組合模式,將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),組合模式使得用戶對單個對象和組合對象的使用具有一致性。它使我們樹型結(jié)構(gòu)的問題中,模糊了簡單元素和復(fù)雜元素的概念,客戶程序可以像處理簡單元素一樣來處理復(fù)雜元素,從而使得客戶程序與復(fù)雜元素的內(nèi)部結(jié)...
摘要:簡化了父和子之間的關(guān)系。對于子節(jié)點(diǎn)來說也是一樣的,過多的接口暴露有時候也是一種濫用,同時也減少了對外部的依賴。 The Composite Pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the...
閱讀 661·2021-11-15 11:39
閱讀 2898·2021-10-08 10:04
閱讀 3261·2019-08-30 10:57
閱讀 3023·2019-08-26 13:25
閱讀 1904·2019-08-26 12:14
閱讀 2635·2019-08-23 15:27
閱讀 2993·2019-08-23 15:18
閱讀 1774·2019-08-23 14:26