成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

組合模式(Composite)

CloudwiseAPM / 2810人閱讀

摘要:組合模式一組合模式定義將對(duì)象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu)組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性二實(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 定義

將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu).

組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性.

二.實(shí)現(xiàn) 2.1 創(chuàng)建節(jié)點(diǎn)類
    public class Node {
        private String id;
        private String name;
        private String parentId;
        private List 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();
            }
        }
    }
2.2 調(diào)用
    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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69482.html

相關(guān)文章

  • 設(shè)計(jì)模式組合模式

    摘要:安全式組合模式中的抽象構(gòu)件不聲明管理子類的接口,把操作移交給子類完成。組合模式實(shí)現(xiàn)樣例使用組合模式實(shí)現(xiàn)目錄和課程之間的關(guān)系。 0x01.定義與類型 定義:將對(duì)象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),使客戶端對(duì)單個(gè)對(duì)象和組合對(duì)象保持一致的方式處理 組合模式實(shí)現(xiàn)的最關(guān)鍵的地方是:簡單對(duì)象和復(fù)合對(duì)象必須實(shí)現(xiàn)相同的接口,這就是組合模式能夠?qū)⒔M合對(duì)象和簡單對(duì)象進(jìn)行一致處理的原因。 類型:結(jié)...

    jsdt 評(píng)論0 收藏0
  • 聽飛狐聊JavaScript設(shè)計(jì)模式系列12

    摘要:,對(duì)組合對(duì)象執(zhí)行的操作可以向下傳遞到葉子節(jié)點(diǎn)進(jìn)行操作。組合模式之圖片庫圖片庫可以有選擇地隱藏或顯示圖片庫的全部或某一部分單獨(dú)的或是部分的。 本回內(nèi)容介紹 上一回,聊了橋接模式,做了一道計(jì)算題;介一回,聊組合模式(Composite),官方描述組合模式將對(duì)象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。 組合模式特性 這里我理了一下,就組...

    HitenDev 評(píng)論0 收藏0
  • Java設(shè)計(jì)模式之(十)——組合模式

    摘要:什么是組合模式什么是組合模式組合模式將對(duì)象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu),使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。組合模式應(yīng)用場(chǎng)景組合模式應(yīng)用場(chǎng)景只要是樹形結(jié)構(gòu),就可以考慮使用組合模式。1、什么是組合模式?Compose objects into tree structures to represent part-whole hierarchies.Composite lets...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • js設(shè)計(jì)模式 --- 組合設(shè)計(jì)模式

    摘要:組合設(shè)計(jì)模式組合模式,將對(duì)象組合成樹形結(jié)構(gòu)以表示部分整體的層次結(jié)構(gòu),組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。 組合設(shè)計(jì)模式 組合模式,將對(duì)象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。它使我們樹型結(jié)構(gòu)的問題中,模糊了簡單元素和復(fù)雜元素的概念,客戶程序可以像處理簡單元素一樣來處理復(fù)雜元素,從而使得客戶程序與復(fù)雜元素的內(nèi)部結(jié)...

    ninefive 評(píng)論0 收藏0
  • [設(shè)計(jì)模式][組合模式][Javascript]

    摘要:簡化了父和子之間的關(guān)系。對(duì)于子節(jié)點(diǎn)來說也是一樣的,過多的接口暴露有時(shí)候也是一種濫用,同時(shí)也減少了對(duì)外部的依賴。 The Composite Pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the...

    hersion 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<