突破编程_C++_设计模式(组合模式)
组合模式(Composite Pattern)是一种结构型设计模式,它将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
关键概念
- 组件(Component):组件是组合模式的基础。它可以是一个接口或抽象类,声明了所有具体组件和组合对象的通用操作。
- 叶子(Leaf):叶子是组合结构的基本对象,它不包含其他子对象,它实现了组件接口。
- 组合(Composite):组合对象包含子组件,可以是叶子或其他组合。组合实现了组件接口,并负责其子组件的管理。
示例
以下是一个简单的C++示例,展示了组合模式的使用:
#include <iostream>
#include <vector>
#include <memory>
// 组件接口
class Component {
public:
virtual void Operation() const = 0;
virtual ~Component() = default;
};
// 叶子类
class Leaf : public Component {
public:
void Operation() const override {