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

文章目录

    • 一句话理解
    • 组合模式中的角色
    • 组合模式实现步骤
    • 实际场景
    • 举例

一句话理解

又叫做“整体-部分模式”,它使树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦
C语言和设计模式(组合模式)_第1张图片

组合模式中的角色

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

组合模式实现步骤

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

实际场景

平常使用的目录、文件夹

举例

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

typedef struc

你可能感兴趣的:(编程设计模式)