Visitor — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

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.