Zitat von
Khabarakh:
Und für etwas ältere Versionen: Wie wäre es mit einem einfachen
foo(TParams.GetDefault.paramA(1)...
Das wirds jetzt wohl werden
Da komme ich tatsächlich ohne Überladung aus und das ganze verwendet sich wunderbarst flexibel (und auch die Einführung neuer Parameter ist kein Problem)
Zitat von
Khabarakh:
Schenkt man Microsofts Framework Design Guidelines Glauben, stellt das die Otto-Normalentwickler-freundlichste Lösung dar - "Component-Oriented Design" bzw. "Create-Set-Call Pattern". Für den Implementeur zwar manchmal etwas mehr Arbeit, aber mit solchen APIs scheinen Leute am besten klar zu kommen, wenn sie mit Code Insight darin herumstochern. Eine beiliegende Hilfe ist schließlich höchstens etwas fürs stille Örtchen ;P .
Hm. Create-Set-Call kann man ja trotzdem noch machen. Es geht ja weiterhin
Delphi-Quellcode:
var
params: TParams;
begin
params := TParams.Create;
params.a := foo;
params.b := bar;
foo(params);
// gleichbedeutend mit
foo(TParams.getDefault.setA(foo).setB(bar));
end;
Aber ich bin mir nicht sicher ob das gemeint war