@TomRiddle Nie wiem. Trzeba? Jutro będę miał czas żeby zerknąć, jeśli masz jeszcze jakieś uwagi/podpowiedzi to poproszę
No, na upartego nie trzeba, bo możesz zrobić różne metody, ale wtedy trudno nazwać to Visitorem.
W Javie (i w ogóle w silnie typowanych językach) metody call(1)
oraz call(1, 2)
to są różne metody (mają inne sygnatury). W PHP (i innych niektórych słabo typowanych językach) sygnatura nie jest częścią metody, np takie metody call(1)
oraz call(1, 2)
to jedna i ta sama metoda [$this, 'call']
(w PHP) oraz po prostu call
(np w JavaScript).
Visitor polega na tym że implementacje ustalane w Runtime'ie wywołują tą samą metodę z różnymi sygnaturami. Jak widzisz, w dynamicznie typowanych językach trochę to mija się z celem.