Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Methoden-Deklaration vorgeben?

  Alt 13. Aug 2013, 19:37
@Sir Rufo, Furtbichler: Ändert allerdings auch nichts daran, dass man die Parameterdeklaration bei jeder Methode wieder hinschreiben muss.

Wenn dann würde sich vielleicht eher dieses Pattern anbieten, wo man statt die Parameter einzeln zu übergeben, ein einziges Objekt übergibt, das alle Parameter beinhaltet... mit Namen hab ichs nicht so . So spielt die dann Reihenfolge keine Rolle und man kann auch neue Parameter hinzufügen, ohne alle Methoden anpassen zu müssen.

Also statt:
Delphi-Quellcode:
TMyDummyMethod = class
protected
  procedure Execute( input1: Integer; input2: TSomeClass; out output: Double );
end;

procedure TPacketHandler.Execute( const ACommandStr : string; input1: Integer; input2: TSomeClass; out output: Double );
begin
  fMethodDict[ACommandStr].Execute( input1, input2, output );
end;
Delphi-Quellcode:
TMyMethodParameters = class
  input1: Integer;
  input2: TSomeClass;
  output: Double;
end;

TMyDummyMethod = class
protected
  procedure Execute(parameters: TMyMethodParameters);
end;

procedure TPacketHandler.Execute( const ACommandStr : string; input1: Integer; input2: TSomeClass; out output: Double );
var
  Parameters: TMyMethodParameters;
begin
  Parameters:= TMyMethodParameters.Create(input2, input2, output);
  fMethodDict[ACommandStr].Execute(Arguments);
  Parameters.Free;
end;
(jaja public Felder sind pöhse usw., ist nur qualitativ).

Aber KISS.
  Mit Zitat antworten Zitat