Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#5

AW: Pattern: Visitor

  Alt 18. Okt 2011, 18:45
@stahli, würde es so machen:
Delphi-Quellcode:
type
  TVisitorAddiere = class (TInterfacedObject, IVisitor)
  private
    FValue: Integer;
  public
    constructor Create(AValue: Integer);
    procedure Visit(const x: TClass1); overload;
    procedure Visit(const x: TClass2); overload;
  end;

//...

constructor TVisitorAddiere.Create(AValue: Integer);
begin
  FValue := AValue;
end;

procedure TVisitorAddiere.Visit(const x: TClass1);
begin
  x.Wert := x.Wert + FValue;
end;

procedure TVisitorAddiere.Visit(const x: TClass2);
begin
  x.Wert := x.Wert + FValue;
end;
Beispielaufruf:
Delphi-Quellcode:
var
  VisitorAddiere: TVisitorAddiere;

begin
  VisitorAddiere := TVisitorAddiere.Create(100); // wenn man 102 addieren will muss man eben neuen VisitorAddiere erstellen mit Parameter 102

  Class1.TuWasBesonderes(VisitorAddiere);

  VisitorAddiere.Free;
end;
Sebastian
  Mit Zitat antworten Zitat