#include<iostream>
#include<vector>
//抽象组件类
class Component
{
public:
virtual void operation()=0;
};
//叶子组件类
class Leaf: public Component{
public:
void operation()override
{
std::cout<<"leaf operation()"<<std::endl;
}
};
//组合组件类
class Composite:public Component{
private:
std::vector<Component*>components;
public:
void addComponent(Component* component)
{
components.push_back(component);
}
void operation()override
{
std::cout<<"Composite operation()"<<std::endl;
for(Component* component:components)
{
component->operation();
}
}
};
int main()
{
Component* leaf=new Leaf();
Composite* composite=new Composite();
composite->addComponent(leaf);
composite->operation();
delete composite;
delete leaf;
return 0;
}
组合模式(c++实现)
于 2024-09-03 22:15:49 首次发布

被折叠的 条评论
为什么被折叠?



