Design patterns 访问者设计模式的实现
如何在不重新编译层次结构的情况下将成员添加到类的层次结构中? 假设层次结构是Design patterns 访问者设计模式的实现,design-patterns,Design Patterns,如何在不重新编译层次结构的情况下将成员添加到类的层次结构中? 假设层次结构是 LandTransport extends Transport Car extends LandTransport 我们需要将方法GetCapacity添加到层次结构中。如何使用访问者模式实现这一点?您的接口是在编译时定义的,因此在运行时是固定的。但您可以通过运行时多态性向现有类添加访问者模式的功能 只需创建两个接口,一个是visitable,另一个是visitor,将visitor传递给visitable对象并计算
LandTransport extends Transport
Car extends LandTransport
我们需要将方法GetCapacity添加到层次结构中。如何使用访问者模式实现这一点?您的接口是在编译时定义的,因此在运行时是固定的。但您可以通过运行时多态性向现有类添加访问者模式的功能 只需创建两个接口,一个是visitable,另一个是visitor,将visitor传递给visitable对象并计算内部的GetCapacity逻辑 范例
class myClass;
class visitor {
virtual void handle(myClass cl);
}
class iVisitable {
virtual void visit(visitor& v);
}
class myClass : public iVisitable{
void visit(visitor& v){
v.handle(this);
}
}
//Put getCapacity logic here and pass it to myClass
class getCapacityVisitor : iVisitor { } ...