设计模式C++实现笔记

VISITOR 访问者(行为模式)

2019-03-05  本文已影响0人  lixin_karl

介绍

visitor模式,又叫访问者模式,把结构和数据分开,编写一个访问者,去访问数据结构中的元素,然后把对各元素的处理全部交给访问者类。这样,当需要增加新的处理时候,只需要编写新的 访问者类,让数据结构可以接受访问者的访问即可。

参与者

visitor 访问者
concretevisitor 具体访问者
ele 数据
concreteele 具体数据类

class Ele;
class Visitor {
public:
    virtual void visitor(Ele &) = 0;
};

class Ele{
public:
    virtual void Accept(Visitor &visitor) = 0;
};

class ConcreteVisitor : public Visitor{
public:
    void visitor(Ele &)
    {
        std::cout<<"Visitor 处理 Ele 的数据"<<std::endl;
    }
};

class ConcreteEle : public Ele{
public:
    void Accept(Visitor& visitor) override
    {
        visitor.visitor(*this);
    }
};

int main()
{
    Ele *ele = new ConcreteEle();
    ConcreteVisitor v;
    v.visitor(*ele);
    return 0;
}

特点

参考

上一篇下一篇

猜你喜欢

热点阅读