资讯专栏INFORMATION COLUMN

组合模式(Composite)

CloudwiseAPM / 2654人阅读

摘要:组合模式一组合模式定义将对象组合成树形结构以表示部分整体的层次结构组合模式使得用户对单个对象和组合对象的使用具有一致性二实现创建节点类方法调用输出三优缺点优点调用简单节点自由增加缺点类间组合,违反依赖倒置原则四源码

组合模式

一.组合模式 1.1 定义

将对象组合成树形结构以表示“部分-整体”的层次结构.

组合模式使得用户对单个对象和组合对象的使用具有一致性.

二.实现 2.1 创建节点类
    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 调用
    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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69482.html

相关文章

  • 设计模式组合模式

    摘要:安全式组合模式中的抽象构件不声明管理子类的接口,把操作移交给子类完成。组合模式实现样例使用组合模式实现目录和课程之间的关系。 0x01.定义与类型 定义:将对象组合成树形结构以表示部分-整体的层次结构,使客户端对单个对象和组合对象保持一致的方式处理 组合模式实现的最关键的地方是:简单对象和复合对象必须实现相同的接口,这就是组合模式能够将组合对象和简单对象进行一致处理的原因。 类型:结...

    jsdt 评论0 收藏0
  • 听飞狐聊JavaScript设计模式系列12

    摘要:,对组合对象执行的操作可以向下传递到叶子节点进行操作。组合模式之图片库图片库可以有选择地隐藏或显示图片库的全部或某一部分单独的或是部分的。 本回内容介绍 上一回,聊了桥接模式,做了一道计算题;介一回,聊组合模式(Composite),官方描述组合模式将对象组合成树形结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合模式特性 这里我理了一下,就组...

    HitenDev 评论0 收藏0
  • Java设计模式之(十)——组合模式

    摘要:什么是组合模式什么是组合模式组合模式将对象组合成树形结构以表示部分整体的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式应用场景组合模式应用场景只要是树形结构,就可以考虑使用组合模式。1、什么是组合模式?Compose objects into tree structures to represent part-whole hierarchies.Composite lets...

    不知名网友 评论0 收藏0
  • js设计模式 --- 组合设计模式

    摘要:组合设计模式组合模式,将对象组合成树形结构以表示部分整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 组合设计模式 组合模式,将对象组合成树形结构以表示部分-整体的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结...

    ninefive 评论0 收藏0
  • [设计模式][组合模式][Javascript]

    摘要:简化了父和子之间的关系。对于子节点来说也是一样的,过多的接口暴露有时候也是一种滥用,同时也减少了对外部的依赖。 The Composite Pattern is a partitioning design pattern. The composite pattern describes that a group of objects is to be treated in the...

    hersion 评论0 收藏0

发表评论

0条评论

CloudwiseAPM

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<