8
Próbowałem znaleźć link do oficjalnej definicji tego wzoru, który, jak sądzę, widziałem w Go4, ale nie mogę go nigdzie znaleźć.Jak nazywa się ten wzorzec (pomaga uniknąć rzutowania typu)?
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);
}
}
Podobała mi się pierwsza wersja Twojej odpowiedzi. To jest podwójna przesyłka. Wzorzec Odwiedzający dodaje pojęcie _multiple_ Visitors (w moim przykładzie "Procesor"). – zvolkov
Zmieniłem nacisk, ponieważ tytuł pyta o "wzór", a pytanie odnosi się do GoF. – erickson