- Problem: Operation may be different for different element types
- Can't rely on polymorphism
- Polymorphism assumes fixed set of methods, defined in superclass
- Trick: Can use variable set of methods if set of classes is
fixed
- Supply separate visitor methods:
public interface Visitor
{
void visitElementType1(ElementType1 element);
void visitElementType2(ElementType2 element);
...
void visitElementTypen(ElementTypen element);
}