Einzelnen Beitrag anzeigen

Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Pattern: Visitor

  Alt 18. Okt 2011, 20:19
Soweit es so gewünscht ist, kann man den Wert ja auch der Methode einfach übergeben:
Delphi-Quellcode:
type
  TKlasse = class;
  IVisitor = interface
    procedure Visit(const x: TKlasse; const v: Integer);
  end;
  TKlasse = class
  protected
    FWert: Integer;
  public
    procedure Add(const vis: IVisitor; const val: Integer);
    property Wert: Integer read FWert write FWert;
  end;
  TVisitor = class(TInterfacedObject, IVisitor)
    procedure Visit(const x: TKlasse; const v: Integer);
  end;

procedure TKlasse.Add(const vis: IVisitor; const val: Integer);
begin
  vis.Visit(self,val);
end;

procedure TVisitor.Visit(const x: TKlasse; const val: Integer);
begin
  x.Wert := x.Wert + val;
end;
  Mit Zitat antworten Zitat