8
Me encontré tratando de encontrar un enlace a una definición oficial de este patrón de diseño que creo que vi en Go4 pero parece que no puede encontrarlo en ninguna parte.¿Cómo se llama este patrón (ayuda a evitar el tipo de fundición)?
class Processor{
ProcessParameter(AbstractParameter x){
x.Process(this);
}
ProcessParameter(ParameterA x){
... A-specific logic...
}
ProcessParameter(ParameterB x){
... B-specific logic...
}
}
abstract class AbstractParameter{
abstract void Process(Processor p);
}
class ParameterA : AbstractParameter{
override void Process(Processor p){
p.ProcessParameter(this);
}
}
class ParameterB : AbstractParameter{
override void Process(Processor p){
p.ProcessParameter(this);
}
}
Me gustó la primera versión de su respuesta mejor. Este _es_ Doble Despacho. El patrón Visitor agrega la noción de _multiple_ Visitantes (llamado "Procesador" en mi ejemplo). – zvolkov
Cambié el énfasis ya que el título solicita el "patrón", y la pregunta se refiere a GoF. – erickson