Ejemplo n.º 1
0
void Client::main(std::string args[]) {
    //定义所有的组合对象
    Component *root = new Composite("服装");
    Component *c1 = new Composite("男装");
    Component *c2 = new Composite("女装");
    //定义所有的叶子对象
    Component *leaf1 = new Leaf("衬衣");
    Component *leaf2 = new Leaf("夹克");
    Component *leaf3 = new Leaf("裙子");
    Component *leaf4 = new Leaf("套装");
    //按照树的结构来组合组合对象和叶子对象
    root->addChild(c1);
    root->addChild(c2);

    c1->addChild(leaf1);
    c1->addChild(leaf2);

    c2->addChild(leaf3);
    c2->addChild(leaf4);

    //创建ObjectStructure
    ObjectStructure *os = new ObjectStructure();
    os->setRoot(root);

    //调用ObjectStructure来处理请求功能
    Visitor *psVisitor = new PrintNameVisitor();
    //      root.accept(psVisitor);

    os->handleRequest(psVisitor);
}
Ejemplo n.º 2
0
 void VisitorMain::main(std::string args[]) {
     ObjectStructure* os = new ObjectStructure();
     Person* man = new Man();
     Person* woman = new Woman();
     os->attach(man);
     os->attach(woman);
     Success* v = new Success();
     os->display(v);
     Fail* f = new Fail();
     os->display(f);
 }
Ejemplo n.º 3
0
int main()
{
	ConcreteVisitor visitor;
	ConcreteElementA elementA;
	ConcreteElementB elementB;

	ObjectStructure objectStructure;
	objectStructure.addElement(&elementA);
	objectStructure.addElement(&elementB);

	objectStructure.accept(visitor);

	return 0;
}
Ejemplo n.º 4
0
void Client::main(std::string args[]) {
    //创建ObjectStructure
    ObjectStructure *os = new ObjectStructure();
    //创建要加入对象结构的元素
    Element *eleA = new ConcreteElementA();
    Element *eleB = new ConcreteElementB();
    //把元素加入对象结构
    os->addElement(eleA);
    os->addElement(eleB);

    //创建访问者
    Visitor *visitor = new ConcreteVisitor1();

    //调用业务处理的方法
    os->handleRequest(visitor);
}