0
如何在不重新编译层次结构的情况下将成员添加到类层次结构中? 假设层次是实现访问者设计模式
LandTransport extends Transport
Car extends LandTransport
我们需要添加方法GetCapacity
等级制度。如何使用访客模式来做到这一点?
如何在不重新编译层次结构的情况下将成员添加到类层次结构中? 假设层次是实现访问者设计模式
LandTransport extends Transport
Car extends LandTransport
我们需要添加方法GetCapacity
等级制度。如何使用访客模式来做到这一点?
您的接口是在编译时定义的,所以它在运行时固定。但是您可以通过运行时多态性为访问者模式添加现有类的功能。
只需创建两个接口一个可见和第二个访客,将访问者传递给可见对象并计算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 { } ...
这是功课? – Fuhrmanator 2012-04-17 13:14:09