Principii și arhitectură / Șabloane de proiectare / Comportamentale
Visitor
Note originale de SunDiaL · Vezi sursa în engleză
Problema: Ai o ierarhie stabilă de tipuri care au mereu nevoie de operații noi. Fiecare operație nouă trebuie implementată pentru toate tipurile.
Soluția: Uniuni discriminate, dacă limbajul permite.
Cealaltă soluție: Dacă aceste operații sunt „efectuate asupra” obiectelor, nu „efectuate de” ele, extrage-le într-o clasă Visitor dedicată. Tipurile trebuie să știe doar că pot fi vizitate, nu ce face vizitatorul cu ele.