访客模式中的双重调度如何工作?


问题内容

我正在调查与访客模式有关的其他问题,但无法理解访客模式中双重调度的实现。

请参考链接 访客模式

访客模式中的双重调度如何工作?


问题答案:

元素对象的accept方法接收一个访问者对象,并visit在该访问者对象上调用该方法。由于访问者对象具有多种visit方法,因此根据元素类型visit调用适当的方法。在这里,我们有两个调用(
double dispatch ),它们指定 元素元素 的正确 操作 (基于其类型)。