#include <iostream>
#include <vector>
using namespace std;
class Component{
public:
int value;
Component(int val){
value = val;
cout << "Component value: " << value << endl;
}
virtual void add(Component*){}
};
class Composition : public Component{
public:
vector<Component*> c;
Composition(int val) : Component(val){}
void add(Component* elem){
c.push_back(elem);
}
};
class Primitive : public Component{
public:
Primitive(int val) : Component(val){
cout << "Primitive val: " << val << endl;
}
};
int main()
{
Primitive a(10);
Primitive b(20);
Primitive c(30);
Composition A(100);
A.add(&a);
A.add(&b);
A.add(&c);
cout << A.c.front()->value << endl;
cout << A.c.back()->value << endl;
return 0;
}
Composite pattern 组合模式
最新推荐文章于 2024-07-19 23:11:36 发布