Visitor — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Principios y arquitectura / Patrones de diseño / De comportamiento

Visitor

Notas originales de SunDiaL · Ver fuente en inglés

El problema: Tienes una jerarquía estable de tipos a la que continuamente hay que añadir nuevas operaciones. Cada operación nueva debe implementarse en todos los tipos.

La solución: Uniones discriminadas, si el lenguaje lo permite.

La otra solución: Si esas operaciones se realizan «sobre» los objetos, en lugar de ser realizadas «por» ellos, extraerlas a una clase Visitor dedicada. Los tipos solo necesitan saber que pueden recibir una visita, no qué hace el visitante con ellos.