class Visitor;
class Element{
public:
virtual ~Element( void ) {}
virtual void accept( Visitor& visitor ) = 0;
};
class ConcreteElementA : public Element{
public:
virtual void accept( Visitor& visitor ) override{
visitor.SetConcreteElementA( *this );
}
};
class ConcreteElementB : public Element{
public:
virtual void accept( Visitor& visitor ) override{
visitor.SetConcreteElementB( *this );
}
};
class Visitor{
public:
virtual ~Visitor( void ) {}
virtual void SetConcreteElementA( ConcreteElementA& elementA ){
}
virtual void SetConcreteElementB( ConcreteElementB& elementB ){
}
};
【设计模式:visitor pattern】
最新推荐文章于 2024-10-19 13:10:07 发布