0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设计模式结构性:组合模式

冬至子 来源:码农架构 作者:小智 2023-06-08 10:34 次阅读

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。

组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。

我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。

结构图

图片

角色与理解

  • 组合模式共分为三种角色:
  • Component (抽象构件):叶子构件与容器构件共同继承的父类或者是共同实现的接口,该角色中包含所有子类共有方法的声明和实现,在抽象构件中定义了管理子构件的方法,新增构件、删除构件、获取构件。
  • Leaf (叶子构件):表示叶子节点,没有子节点,对于继承父类的管理子节点的方法以抛出异常的方式处理。
  • Composite (容器构件):表示容器节点,包含子节点,子节点可以是容器节点也可以是叶子节点,其提供一个集合来对子节点进行维护,以迭代的方式对子节点进行处理。
  • 组合模式的关键是抽象构件类,它既可以表示叶子节点也可以表示容器节点,对于客户端而言是统一对抽象构件进行处理的,抽象构件类和容器构件类是聚合关联的关系,抽象构件类是容器构件类的一部分,这样容器构件类对子构件进行处理时不用区分是叶子节点还是容器节点,能够统一的做处理

核心代码

  • 抽象组件

图片

  • 容器节点

图片

  • 叶子节点

图片

  • 客户端

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pattern
    +关注

    关注

    0

    文章

    6

    浏览量

    9633
收藏 人收藏

    评论

    相关推荐

    模式 PFC + 电流模式 LLC 组合控制器

    1. 简介 [HR1211]是一款集成了多模式 PFC 和电流模式 HB LLC 的组合控制器,它性能卓越,具体参数请参阅 HR1211 数据手册。 *附件:多模式 PFC + 电流
    的头像 发表于 06-04 16:46 7876次阅读
    多<b class='flag-5'>模式</b> PFC + 电流<b class='flag-5'>模式</b> LLC <b class='flag-5'>组合</b>控制器

    优化电动汽车的结构性

    优化电动汽车的结构性能以提高效率和安全迅速增长的全球电动汽车(EV)市场预计到2027年将达到8028亿美元。在电池和高压电子设备的驱动下,电动汽车的运行和维护成本往往低于传统汽车,几乎不会产生
    发表于 09-17 08:10

    迷你组合音响的音场模式

    迷你组合音响的音场模式              音场的模式不是为了真实的再现录音时的声音,而是让声音更能符合收听者
    发表于 01-04 15:05 1080次阅读

    STM32的结构和启动模式

    STM32的结构和启动模式需要的来下载哦。
    发表于 03-31 17:36 46次下载

    适配器模式、装饰器模式、代理模式的区别

    适配器模式、装饰器模式、代理模式都属于设计模式中的结构型模式结构型设计
    发表于 10-18 15:53 1.7w次阅读
    适配器<b class='flag-5'>模式</b>、装饰器<b class='flag-5'>模式</b>、代理<b class='flag-5'>模式</b>的区别

    组合模式(Composite Pattern)的用法

    组合模式主要是为了表达“部分-整体”的层次结构,例如公司的组织架构,每个部门下又有若干个下级部门,再如菜单结构,每个菜单下可能有一个或多个子菜单。
    的头像 发表于 06-01 15:30 702次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>模式</b>(Composite Pattern)的用法

    设计模式结构性:适配器模式

    适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
    的头像 发表于 06-07 11:56 760次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:适配器<b class='flag-5'>模式</b>

    设计模式结构性:桥接模式

    桥接模式不是将两个不相干的类链接,而是将一个需要多维度变化的类拆分成抽象部分和实现部分,并且在抽象层对两者做组合关联,是用组合的方式来解决继承的问题。
    的头像 发表于 06-08 10:49 807次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:桥接<b class='flag-5'>模式</b>

    设计模式结构性:门面模式

    门面模式,是指提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。
    的头像 发表于 06-08 14:28 674次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:门面<b class='flag-5'>模式</b>

    设计模式结构性:享元模式

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。
    的头像 发表于 06-08 17:32 741次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:享元<b class='flag-5'>模式</b>

    设计模式结构性:代理模式

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式
    的头像 发表于 06-09 15:27 839次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>结构性</b>:代理<b class='flag-5'>模式</b>

    组合模式应该怎么用

    uniformly. 组合模式(Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构, 使得用户对单个
    的头像 发表于 10-09 10:37 439次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>模式</b>应该怎么用

    5G技术和电动汽车会推动结构性增长吗?.zip

    5G技术和电动汽车会推动结构性增长吗?
    发表于 01-13 09:06 1次下载

    存储器结构性分道篇.zip

    存储器结构性分道篇
    发表于 01-13 09:07 1次下载

    汽车行业:短期关注芯片短缺改善,长期布局结构性机会.zip

    汽车行业:短期关注芯片短缺改善,长期布局结构性机会
    发表于 01-13 09:07 2次下载