Soweit es so gewünscht ist, kann man den Wert ja auch der Methode einfach übergeben:
Wenn man Visit den Parameter V zusätzlich mitgibt, kann man Visit natürlich nicht mehr zentral für alle Visitor-Klassen verwenden. Daher würde ich es grundsätzlich wohl bevorzugen den Wert als Eigenschaft VisitorClass.V zu übergeben.
Ein sinnvollerer Procedurname als "TuWasBesonderes" könnte dann wohl "Do", "DoVisit" oder "Visit" sein. Oder wie macht Ihr das üblicherweise?
Am sinnvollsten ist es natürlich, sie nach dem zu benennen, was sie machen soll
"Visit" nennt man üblicherweise die Methoden des Visitors. Die Methode in der Klasse, die ich hier "TuWasBesonderes" genannt habe, heißt in der Literatur zumeist "Accept".
In der Praxis gibt man ihr aber lieber einen aussagekräftigeren Namen.
Jetzt komme ich wieder durcheinander. Wenn Du z.B. TVisitorAdd, TVisitorDel, TVisitorIrgendwas nutzt, dann würdest Du für jede "Nutzung" eine passende Methode in dem Objekt definieren? Den Vorteil (wenn überhaupt) hätte ich eher darin gesehen, dass man den Objekten nicht dutzende Methoden verpassen muss.
Ich will Dir an der Stelle nochmal für den Beitrag danken!
Auch wenn ich einige Bedenken bezüglich Aufwand+Nutzen habe bin ich doch froh, das Prinzip nun endlich verstanden zu haben.