C语言和设计模式(组合模式)

组合模式,又称整体-部分模式,用于树形结构问题,使得处理简单元素和复杂元素变得一致,客户程序与元素内部结构解耦。模式包括抽象组件、叶子节点和组件集合角色。实际应用如目录、文件系统。通过定义抽象接口,实现叶子节点和组件集合,最终在环境中组合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一句话理解

又叫做“整体-部分模式”,它使树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦
在这里插入图片描述

组合模式中的角色

1、抽象组件类(Component):组合中的对象声明接口,实现所有类共有接口的行为。声明用于访问和管理Component的子部件的接口。
2、叶子节点(Leaf):叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶,所以叶节点的Add和Remove没有实际意义。
3、组件集合类(Composite):实现Componet的相关操作,比如Add和Remove操作。其中包含Component的容器,用来存储叶节点集合,有叶节点行为,用来存储叶节点集合。

组合模式实现步骤

1、定义抽象组件接口
2、实现叶子节点类,实现抽象组件类的接口
3、实现组件集合类,实现抽象组件类的接口
4、定义环境类,将叶子节点和组件集合加入根组件集合

实际场景

平常使用的目录、文件夹

举例

 组合模式听说去很玄乎,其实也并不复杂。为什么?大家可以先想一下数据结构里面的二叉树是怎么回事。为什么就是这么一个简单的二叉树节点既可能是叶节点,也可能是父节点?

typedef struc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值